我有一些js文件放在另一个文件夹中,以便于更新和在不同页面之间共享。这些文件是从另一个页面调用的,我使用
<script type="text/javascript" src="/js/file.js"></script>
符号。
这很好但是当我在其中一个js文件中更改某些内容时,浏览器(chrome,firefox,safari)仍会加载以前的版本而不进行更改,因此不会更新它用于更新的js文件。我试图清理缓存以强制它再次加载js文件(带有更改),但无济于事。
我唯一的解决方法是将外部文件重命名为file2.js并将其包含在调用它的页面中,但这是一个繁琐的过程,因为如果我进行另一次更改,我必须将名称更改为file3.js,等
有没有办法强制浏览器重新加载原始js而不使用之前存储的js&gt;
答案 0 :(得分:4)
您可以通过在网址中添加唯一内容来强制刷新:
在下面的代码中,必须为每个请求生成字符串“d6aa97d33d459ea3670056e737c99a3d”。您可以使用时间戳,哈希,随机数,无论您想要什么。 因此,浏览器不会重复使用缓存中的内容,而是始终下载JS文件。
<script type="text/javascript" src="/js/file.js?d6aa97d33d459ea3670056e737c99a3d"></script>
答案 1 :(得分:0)
您可以尝试在查询字符串中添加随机数的经典技巧。
<script type="text/javascript" src="/js/file.js?r=123"></script>
这可以实现与使用不同文件名相同的功能(就浏览器而言,这是一个不同的URL),但您不必重命名文件。
答案 2 :(得分:0)
请使用:
<script type="text/javascript" src="/js/file.js?1"></script>
请参阅文件名后的?1
。