gpt4 book ai didi

Python Flask 强制重新加载缓存的 JS 文件

转载 作者:太空宇宙 更新时间:2023-11-04 08:42:14 24 4
gpt4 key购买 nike

我正在使用以下代码将我的静态文件缓存在我的 flask 应用程序上,该应用程序托管在 heroku 上:

# cache control
@app.after_request
def add_header(response):
# rule so it will only affect static files
rule = request.path
if "static" in rule:
response.cache_control.max_age = 1000000
return response
else:
return response

它工作正常。

但现在我做了一些更改,我需要站点加载新文件。如果我在我已经打开过的常规浏览器中打开该网站,它会加载旧文件(因为它们已被缓存)。

在隐身模式下或按 ctrl+f5 = 加载新文件。问题是普通用户不会按 ctrl+f5 或使用隐身模式。

最佳答案

正如@mpf82 所建议的那样,您可以简单地将版本或其他内容作为查询字符串参数添加到要重新加载的文件中。

如果文件名更改,浏览器将不再缓存旧文件。

url_for 中未知的 flask 变量作为查询字符串处理,因此您只需选择一个未知的变量,例如version并在那里添加一个版本号,f.e. 12052017 :

<script type=text/javascript src="{{ url_for('static', filename='js/main.js', version='12052017') }}"></script>

就是这样,结果:

<script type=text/javascript src="/static/js/main.js?version=12052017"></script>

关于Python Flask 强制重新加载缓存的 JS 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43933327/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com