0

我在这里阅读了大约十几篇文章,这一篇似乎最接近,但对我来说并没有完全清楚。

我正在 HTML5 Boilerplate 上构建,尽管是自定义的 Modernizr 构建。我计划使用 yepnope/modernizr.load 功能进行条件加载。

H5BP 中的 .htaccess 删除了 Etags 并添加了过期标头(我猜 Modernizr.load 需要过期标头)。它还设置了“access plus X”的过期时间

这在充分利用缓存以“加速”浏览体验方面有何作用。是否会在每个页面上加载满足条件的每个资源,还是会跳过缓存的内容?

如果仅更改了其中一个组件(我正在加载的资源之一)而我的 Modernizr 版本没有更改怎么办?

发布后我意识到这可能更适合网站管理员论坛(问题中没有实际代码......)但我想我不确定是否会有涉及代码的答案,所以现在,我会让它意识到也许它应该被迁移。抱歉,这种级别的编码和配置对我来说是新的。

谢谢

4

1 回答 1

0

每个资源都是独立缓存的。因此,如果您加载一个名为 的 javascript 文件foo.js,该文件将被缓存一年:https ://github.com/h5bp/html5-boilerplate/blob/master/.htaccess#L245

如果您将modernizr 脚本更改为新版本,这不会更改缓存结束日期,foo.js其将保持不变。

为了破坏缓存,您需要更改文件名(例如:)foo-v1234123.js、路径,或者您可以添加查询字符串(foo.js?v=1)。如果您进行更改,foo.js则只需将此版本号增加一,以强制浏览器重新下载文件并重新缓存它。

如果您正在处理一个简单的网站并且没有大型项目,那么手动执行此操作可能是更简单的解决方案。否则,我建议通过git或类似的方式挂钩版本号 - 但为了您的理智,这需要自动化。

希望这有帮助!

于 2012-11-11T02:19:00.347 回答