2016-10-08 115 views
0

我在瓶服务器下面的代码:瓶的应用程序将

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代码(文件夹的静态/ JS /),我不断地修改,而修复错误等。但是,当我在常规chrome窗口中刷新页面时(即使当我终止浏览器并重新启动它时),我对javascript代码所做的更改(例如添加警报或调试语句)不会执行。这意味着它会继续运行较旧的(缓存副本)。当我使用隐身窗口时,刷新工作正常。有没有办法让即使是普通的浏览器窗口也可以获取最新的代码?我担心在生产环境中浏览器将使用缓存副本并导致问题。

+0

Ctrl + Shift + R适用于Chrome。您只需要在浏览器中清除缓存。搜索它。 –

+0

我不希望最终用户清除缓存时,我的任何JS代码更改。 – user3079275

+0

我无法重现您的问题。当我更改静态文件时,该更改会在页面刷新时反映出来。 – davidism

回答

0

确保浏览器不缓存文件的一个窍门是在文件更改时更改URL。这可以在不改变文件名来完成,通过附加的查询:

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

,或者甚至更好:

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

您可以生成与该文件的实际时间戳的URL的功能。这样,只要浏览器不更改,它就会缓存它。

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