【问题标题】:I've tried all the common ways of disabling css caching in Flask, and none of them work for me我已经尝试了所有在 Flask 中禁用 css 缓存的常用方法,但它们都不适合我
【发布时间】: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


【解决方案1】:

我尝试通过制作一个最小的烧瓶项目进行故障排除,但没有遇到同样的问题。然后我再次尝试了我的原始项目,并且神奇地解决了这个问题。不知道为什么,但我会接受。我很感激这意味着这个问题对其他人没有用,对此感到抱歉。

【讨论】:

    猜你喜欢
    • 2021-09-05
    • 2011-10-17
    • 2022-01-11
    • 2021-12-02
    • 2021-01-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-12
    相关资源
    最近更新 更多