Javascript Flask应用程序未反映新的JS更改

Javascript Flask应用程序未反映新的JS更改,javascript,python,caching,flask,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代码(

我的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/文件夹中),我在修复bug等过程中不断编辑这些代码。但是,当我在常规的chrome窗口中刷新页面时(即使我关闭浏览器并重新启动它),我对javascript代码所做的更改(例如添加警报或调试语句)不会执行。这意味着它将继续运行较旧的(缓存副本)。当我使用匿名窗口时,刷新正常工作。有没有一种方法,即使是常规的浏览器窗口也可以始终获取最新的代码?我担心在生产环境中,浏览器会使用缓存副本并导致问题。

确保浏览器不会缓存文件的一个技巧是在文件更改时更改url。通过附加查询,无需更改文件名即可完成此操作:

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

或者,更好的是:

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

您可以创建一个函数,用文件的实际时间戳生成URL。这样,只要它不改变,浏览器就会缓存它


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

确保浏览器不会缓存文件的一个技巧是在文件更改时更改url。通过附加查询,无需更改文件名即可完成此操作:

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

或者,更好的是:

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

您可以创建一个函数,用文件的实际时间戳生成URL。这样,只要它不改变,浏览器就会缓存它


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

Ctrl+Shift+R这是Chrome的。您只需要在浏览器中清除缓存。搜索它。我不能期望最终用户在我的JS代码发生任何更改时清除缓存。Ctrl+Shift+R是Chrome的。您只需要在浏览器中清除缓存。搜索它。我不能期望最终用户在我的JS代码发生任何更改时清除缓存。