模板引擎和缓存

template engine and cache

使用模板引擎(pug、thymeleaf 等...)时, 服务器动态呈现一个 html 文件,然后根据每个页面请求将其传送给客户端。

假设服务器与客户端之间有公司代理服务器或缓存服务器

会有缓存命中吗? 一直向客户发送 html 的新版本时,我们不会失去互联网缓存的所有优势吗?

如果 URL 对于所有用户都是相同的,那么是的,CDN 将在大多数时间被命中。您将需要执行类似 cache-control 的操作或设置 CDN 以在命中特定路径时绕过缓存。

这就是为什么许多网站使用 AJAX 调用来填充页面 post-load 的原因。所有 HTML 都可以缓存在 CDN 中,并且 CDN 配置为绕过所有 /api 路径的缓存。

我们的网站将 CDN 用于 public 页面(仍然由 pug 生成),然后当您登录时,CDN 被指示永远不要缓存动态呈现的 "personal" 页面。