Flask应用程序没有反映新的JS更改

时间:2016-10-08 18:06:58

标签: javascript python caching flask

我的Flask服务器中有以下代码:

    res = Response(resp, mimetype='text/plain')
    res.headers["Cache-Control"] = "no-cache, no-store, must-revalidate"
    res.headers["Pragma"] = "no-cache"
    res.headers["Expires"] = "0"

    return res

在客户端,我有一些javascript代码(在文件夹static / JS /中),我在修复错误时不断编辑等等。但是,当我在常规chrome窗口中刷新页面时(即使我杀死浏览器并重新启动它),我对javascript代码所做的更改(例如添加警报或调试语句)也不会执行。这意味着它继续运行较旧的(缓存副本)。使用隐身窗口时,刷新工作正常。是否有一种方法可以使常规浏览器窗口始终可以获取最新代码?我担心在生产环境中,浏览器将使用缓存副本并导致问题。

1 个答案:

答案 0 :(得分:0)

确保浏览器不缓存文件的一个技巧是在文件更改时更改URL。这可以在不更改文件名的情况下通过附加查询来完成:

<script src="myscript.js?version=7">

或者,甚至更好:

<script src="myscript.js?timestamp=2837482.2456">

您可以创建一个生成带有文件实际时间戳的URL的函数。这样,只要浏览器没有改变,浏览器就会对其进行缓存。

如果您想知道......查询将被忽略。它不会影响静态文件。