1

我有许多 js 文件,我将它们放在另一个文件夹中,以便于更新和在不同页面之间共享。这些文件是从另一个页面调用的,我使用

<script type="text/javascript" src="/js/file.js"></script>

符号。

这工作正常,但是当我在其中一个 js 文件中更改某些内容时,浏览器(chrome、firefox、safari)仍然会加载以前的版本而不进行更改,因此不会将它使用的 js 文件更新为更新的文件。我试图清理缓存以强制它再次加载 js 文件(带有更改),但无济于事。

我唯一的解决方法是将外部文件重命名为 file2.js 并将其包含在调用它的页面中,但这是一个乏味的过程,因为如果我进行另一项更改,我必须将名称更改为 file3.js 等。

有没有办法强制浏览器重新加载原始js而不使用之前存储的>

4

3 回答 3

7

您可以通过在 URL 中添加一些独特的内容来强制刷新:

在下面的代码中,必须为每个请求生成字符串“d6aa97d33d459ea3670056e737c99a3d”。你可以使用时间戳、散列、随机数,任何你想要的。正因为如此,浏览器不会重用缓存中的内容,并且总是会下载 JS 文件。

<script type="text/javascript" src="/js/file.js?d6aa97d33d459ea3670056e737c99a3d"></script>
于 2013-01-16T10:15:02.107 回答
0

您可以尝试向查询字符串添加随机数的经典技术。

<script type="text/javascript" src="/js/file.js?r=123"></script>

这将实现与使用不同文件名相同的效果(就浏览器而言,这是一个不同的 URL),但您不必重命名文件。

于 2013-01-16T10:14:42.337 回答
0

只需使用这个:

<script type="text/javascript" src="/js/file.js?1"></script>

?1文件名后面的。

于 2013-01-16T10:17:20.820 回答