在我的Django项目中,应用程序my_app有一个引用javascript静态文件的模板:
<script src="{% static 'my_app/my_script.js' %}"></script>
一旦我在my_app / templates / my_app中安装my_script.js,一切似乎都有效。 在某些时候,我用不同的脚本覆盖my_script.js,这样my_script.js现在有不同的内容。
但是,当我使用浏览器加载my_app时,它会加载旧的my_script.js,尽管它不再存在。 我该如何解决? 感谢。
答案 0 :(得分:6)
我经常使用?v=00001
或任何定义号来强制清除浏览器中的缓存。所以在你的情况下它可能是:
<script src="{% static 'my_app/my_script.js?v=00001' %}"></script>
或者:
<script src="{% static 'my_app/my_script.js' %}?v=00001"></script>
下次更改脚本时,请将数字增加到00002.当然有很多方法可以做到这一点,但我仍然更喜欢这种方法。
答案 1 :(得分:2)
您可以添加缓存清除?get =参数。我喜欢定义一个{%statichash%}模板标记来读取文件,并将文件内容的散列作为get参数附加。这是类似的,使用文件的修改时间而不是哈希,但同样的想法:
答案 2 :(得分:0)
我通过编写代码来修复浏览器来修复它。 这样,它将始终获取最新更新的静态文件而不是 从缓存中读取。
有3种方法可以做到这一点。
将Windows操作系统与浏览器谷歌浏览器或IE9一起使用,点击(CTRL + F5)
按特定时间间隔刷新页面(在此示例中,浏览器每3秒刷新一次)
<head>
<meta http-equiv="refresh" content="3" >
</head>
用户点击按钮时刷新页面
<form>
<INPUT TYPE="button" onClick="history.go(0)" VALUE="Refresh">
</form>