5

在完成更新后,我经常更新我的网站,我的客户报告说正在加载旧图像和脚本而不是新的。我知道它们来自浏览器缓存,但是有什么方法可以强制脚本不要从服务器的缓存中加载。

我正在使用带有 php-fpm 的 nginx。

4

1 回答 1

11

您可以强制 HTTP 标头影响浏览器缓存行为,但是在您想要缓存的生产环境中,这可能不是一个好主意。

所以只需使用类似的东西:

expires -1

强制Cache-Control no-cache标头

在这里查看更多信息:

http://wiki.nginx.org/HttpHeadersModule

话虽如此,我已经养成了在修改图像和静态文件名称时更改它们的习惯。也许这来自与 CDN 的合作,这可能会非常有帮助。所以假设我有可能经常更新的静态文件(即它们不是某些特定内容的一部分)。我会这样命名它们:

someimagev1.jpg
someimagev2.jpg
somejs1.js
somejs2.js
etc.

我根据需要更改值(和 HTML 源代码中的链接)。

于 2013-04-05T16:08:25.880 回答