缓存
Deno DeployEA 包含一个内置 CDN,可以缓存来自您应用程序的响应。这有助于提升以下场景的性能:
- 静态资产(图片、CSS、JavaScript 文件)
- API 响应和不常更改的服务器渲染页面
默认情况下,所有应用程序都启用了缓存,但只有带有适当缓存头的响应才会被实际缓存。
Deno DeployEA 集成了 Next.js 等流行框架,可自动优化增量式静态再生成 (ISR) 等功能的缓存。
CDN 缓存与版本和上下文相关联。当您部署新版本时,缓存会自动失效,确保用户始终看到应用程序的最新版本。请注意,如果 Cache-Control
标头允许,浏览器缓存仍可能提供旧内容。
缓存资源 跳到标题
要缓存资源,请在响应中设置 Cache-Control
标头。此标准 HTTP 标头会告知浏览器和 CDN 如何缓存您的内容。
支持的缓存指令 跳到标题
Deno DeployEA 支持以下缓存指令:
指令 | 描述 |
---|---|
max-age |
CDN 和浏览器将响应视为最新的最长时间(秒)。在此时间之后,响应被视为过期,并与服务器重新验证。 |
s-maxage |
共享缓存(仅限 CDN,不包括浏览器)将响应视为最新的最长时间(秒)。在此时间之后,响应将与服务器重新验证。 |
stale-while-revalidate |
在后台获取新响应的同时,可以提供过期响应的最长时间(秒)。 |
stale-if-error |
如果服务器返回错误,可以提供过期响应的最长时间(秒)。 |
immutable |
表示响应永不改变,允许无限期缓存。适用于内容哈希的静态资产。 |
no-store |
阻止响应被缓存。用于不应缓存的动态内容。 |
no-cache |
在从缓存提供之前,需要与服务器重新验证。用于频繁更改但可从条件请求中受益的内容。 |
附加缓存头 跳到标题
-
Vary
: 指定哪些请求头应包含在缓存键中,根据这些头创建单独的缓存版本。 -
Expires
: 为响应设置一个绝对过期日期(max-age
的替代方案)。不会更改,例如图片或 CSS 文件。 -
no-store
: 响应不应被缓存。这对于不应缓存的动态响应非常有用,例如 API 响应或服务器渲染的页面。 -
no-cache
: 响应在从缓存提供之前应与服务器重新验证。这对于可能频繁更改的动态响应非常有用。
Vary
标头可用于指定哪些请求标头应作为请求的缓存键的一部分。
Expires
标头可用于指定响应的绝对过期日期。这是 max-age
指令的替代方案。