我们希望为使用过的图像、css 和 javascript 设置过期标头以提高页面速度,但我们知道修改 css 或 js 脚本时的缓存问题。
是否可以在加载 xhtml 的文件中添加元标记或其他标记,告诉浏览器刷新每个元素,无论在现有图像、css 或 js 上设置了什么缓存?
我们希望为使用过的图像、css 和 javascript 设置过期标头以提高页面速度,但我们知道修改 css 或 js 脚本时的缓存问题。
是否可以在加载 xhtml 的文件中添加元标记或其他标记,告诉浏览器刷新每个元素,无论在现有图像、css 或 js 上设置了什么缓存?
您可能想要做的是版本化您的静态内容。假设您有一个 main.css 文件,那么您可以通过将其重命名为 main_0.css 来对其进行版本控制(只是一个示例),然后您可以将缓存过期设置为一年。如果您需要更新 main.css,只需增加版本号并更新您的引用。然后所有客户端都将获得最新版本。
有几种解决方案可以为您执行此版本控制,但这是基本原则。
在遇到与缓存相关的问题时,我一直发现这些资源非常有用:
希望这可以帮助。
编辑
这是我上面解释的版本控制解决方案(mod_pagespeed):
据我所知,没有这样的捷径。
即使是这样——又有什么意义呢?发送这样的标头首先会破坏未来到期标头的目的。
设置过期标头时,您需要向元素添加某种资产版本控制,例如<link rel="stylesheet" href="css/style.css?v=2">
更改资产的路径将实现相同的目标。
是的,这很麻烦。但是缓存失效是一个难题,确实没有简单的解决方法。
是否可以在加载 xhtml 的文件中添加元标记或其他标记,告诉浏览器刷新每个元素,无论在现有图像、css 或 js 上设置了什么缓存?
据我所知不是。
我们希望为使用过的图像、css 和 javascript 设置过期标头以提高页面速度
在我看来,这是一件好事。
但是我们在修改 css 或 js 脚本时知道缓存问题。
如果您要对 CSS 或 JS 进行重大更改,那么无论如何您都应该进行更改。通过将新的 CSS 和 JS 放在不同的路径上来管理这些更改,并在进行更改时更改 HTML 中的引用。这使您可以: