6

我对 Jekyll 工作原理的理解是,一旦我在本地写博客,Jekyll 会生成一个页面并将其添加到某种索引系统中,这样当用户加载主页时,他们可以看到所有帖子的列表。那正确吗?但是,它如何处理浏览器缓存。添加新帖子后,我们如何防止浏览器使用缓存索引并使其每次都获取新索引。还是我说的完全是废话?

4

1 回答 1

7

Jekyll 中不涉及“索引系统”。它生成页面和相关资源(CSS、JS、图像等),仅此而已。

缓存很大程度上取决于您的 HTTP 服务器配置。服务器使用任何资源发送的 HTTP 标头可以告诉浏览器将其保留在缓存中一段时间​​,或者根本不保留。

例如,我的 Apache HTTP 服务器中有这些设置:

<IfModule mod_expires.c> ExpiresActive On ExpiresDefault "access plus 1 year" # Pages ExpiresByType text/html "access plus 15 minutes" # RSS feed ExpiresByType text/xml "access plus 120 minutes" </IfModule>

这告诉浏览器默认将资源在缓存中保留 1 年,但 HTML 页面仅保留 15 分钟,RSS 提要保留 2 小时。因此,除非浏览器缓存需要释放一些空间,否则图像、CSS 和 JS 将被缓存一年。

当然,延迟取决于您的写作频率。我目前正在迁移很多旧内容,因此延迟了 15 分钟,但我通常每周发布一次,所以我会在迁移结束时将其设置为 1 或 2 天。

您必须了解ExpireHTTP 标头告诉浏览器将文件保留在缓存中的时间。使用这样的配置,浏览器现在没有办法有一些新的内容。还有其他处理缓存的方法(ETag例如),允许浏览器询问服务器是否有新的东西,但它对 Web 性能的效率较低。

因此,如果您将 HTML 页面缓存设置Expire为 1 天,并且用户在您更新之前获取该页面,那么她将在大约 1 天后获取新页面。

这一点都不困扰我,但你可能会不这么认为。

高温高压

于 2015-08-06T05:50:29.623 回答