1

我对 javascript 文件添加了相当大的更改。但是,为了注册新的更改,我需要刷新浏览器。我想这对于使用该网站的所有其他人来说也是如此。

有没有办法使客户端的浏览器缓存失效并强制它下载新的js文件?

4

4 回答 4

4

您可以重命名文件,或者在加载文件时添加一个随机参数:

<script src="/javascripts/application.js?version=4" type="text/javascript"></script>
于 2012-06-01T18:04:29.923 回答
3

您可以在文件名中添加一个参数,例如

<script src="script.js?rnd=2131231"></script>
于 2012-06-01T18:04:25.297 回答
1

这里有一个非常全面的讨论,有几种方法可以做到这一点。
如果您的项目不够大或您不使用 apache,推荐的解决方案 (mod_pagespeed) 可能不是您的最佳解决方案,在这种情况下,我会推荐如下格式:

<script src="/{sha_1_here}/script.js"></script>

而不是 GET 参数,因为显然某些浏览器不会缓存带有参数的脚本。
这应该适用于任何地方,您只需要重写 URL 服务器端。

于 2012-06-01T18:13:00.500 回答
0

出于开发目的,我禁用了浏览器端的缓存,以便它始终获取。

但是对于生产,要重置以便所有客户端用户的浏览器都应该下载新版本,您可以查看 apache 的设置以使缓存文件过期。

于 2012-06-01T18:13:43.660 回答