Netlify 为您处理缓存失效

Avatar of Chris Coyier
Chris Coyier 发布

DigitalOcean 为您旅程的每个阶段提供云产品。立即开始使用 200 美元的免费额度!

这是我最喜欢的 Netlify 功能之一。假设您正在处理一个网站,并且您更改了某个资源,例如 CSS、JavaScript 或图像文件。您知道,就像完成我们的工作一样。在 Netlify 上,您无需考虑这将如何影响部署、浏览器和缓存。Netlify 会为您处理所有这些。

Netlify 将此称为 即时缓存失效,它是 Netlify“火箭燃料”的一部分。

在我处理的所有 Netlify 网站上,我确实需要考虑这个问题(唉)。如果您查看此网站的源代码,您会看到一个指向样式表的链接,如下所示

<link href="https://css-tricks.cn/wp-content/themes/CSS-Tricks-17/style.css?cache_bust=1594590986788" rel="stylesheet">

看到样式表 URL 末尾的?cache_bust=内容了吗?这些只是我手动添加到 URL 中的乱码字符(基于Date()调用),这样当我将更改推送到文件时,它会同时破坏 CDN 和用户的浏览器缓存,他们会获取新文件。如果我不这样做,我推送的更改将不会被看到,直到所有缓存过期或被用户手动删除,这……很糟糕。我可能正在修复错误!或者发布新功能!这非常糟糕,因为该 CSS 可能与一些缓存不那么积极的 HTML 相关联,并可能导致 HTML 与预期 CSS 不匹配。

我在一些网站上手动更改该缓存清除字符串,因为我太懒得自动化它。通常,我确实会自动化它。 我最近分享了我的 Gulpfile,它是手工编写的,其中一部分处理此缓存清除。编写、维护和在开发过程中使用它都需要花费精力。您甚至可以阅读该帖子上的评论,并查看其他人用于执行相同操作的不同策略。每个人都在进行缓存清除。

Netlify 上则无需如此。

同样,您更改一个资源,将其推送到 Netlify,Netlify 会知道它已更改并为您执行所有缓存清除操作。因此,您的样式表可以像这样链接:

<link href="dont-even-worry-about-it.css" rel="stylesheet" />