【发布时间】:2023-03-13 07:57:01
【问题描述】:
我在/templates/books.html 中有一个 html 文件,其中包含一个
<link rel="stylesheet" href="{{ url_for('static', filename="css/style.css") }}">
我有一个文件static/css/style.css,代码如下:
body {
}
所以那里什么都没有。然后,我添加一种样式:
body {
display: none;
}
它按预期工作。但是后来我再次删除了样式,但是无论我更改多少次等,Flask 仍然会不断向我发送旧文件。
我尝试了以下方法,但无济于事:
- 重新启动应用程序
- 重新启动我的电脑
- 在文件名末尾添加
?v=1.0.0之类的内容 app.config('SEND_FILE_MAX_AGE_DEFAULT') = 0- 设置标题:
@app.after_request
def add_header(r):
r.headers["Cache-Control"] = "no-cache, no-store, must-
r.headers["Pragma"] = "no-cache"
r.headers["Expires"] = "0"
r.headers['Cache-Control'] = 'public, max-age=0'
return r
- chrome devtools 中的“禁用缓存”
- 使用 Ctrl + F5、Shift + F5、Ctrl + Shift + F5 等所有组合强制重新加载,也尝试直接清除我的整个缓存
- 不同的浏览器、隐身模式等
- html 元标记:
<meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" />
<meta http-equiv="Pragma" content="no-cache" />
<meta http-equiv="Expires" content="0" />
有人知道我还应该尝试什么吗?
【问题讨论】:
-
重启应用怎么样?
-
@Krishna 对不起,我也确实尝试过。我将编辑问题
-
重新启动我的电脑,也没有用。
-
解决这个问题的第一步是使用浏览器中的开发人员工具查看链接文件的实际 HTTP 响应。这将告诉您它是否从缓存中提供,标题是什么,文件是否实际更改等等。
-
@KevinChristopherHenry 我检查了标题,对我来说一切都很好:pastebin.com/ttybd05F。 “过期”时间是当前时间,每次刷新时始终等于当前时间,而“上次修改”时间是从我第一次将
display: none放入文件时开始
标签: flask caching browser-cache cache-control