当前位置: 首页 > 面试题库 >

在Flask中禁用缓存

周正真
2023-03-14
问题内容

我有一些缓存问题。我正在运行一个很小的Web应用程序,该应用程序读取一帧并将其保存到磁盘,然后在浏览器窗口中显示。

我知道,这可能不是最好的解决方案,但是每次我使用相同的名称保存此读取帧时,任何浏览器都会对其进行缓存。

我试图使用html meta-tags-没有成功:

<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" />

另外,我已经尝试过这一步骤(特定于烧瓶):

resp.headers["Cache-Control"] = "no-cache, no-store, must-revalidate"
resp.headers["Pragma"] = "no-cache"
resp.headers["Expires"] = "0"

这是我尝试修改resp标头的方式:

r = make_response(render_template('video.html', video_info=video_info))

r.headers["Cache-Control"] = "no-cache, no-store, must-revalidate"
r.headers["Pragma"] = "no-cache"
r.headers["Expires"] = "0"

Google Chrome和Safari仍然可以缓存。

这可能是什么问题?


问题答案:

好,

最终它与这个工作:

@app.after_request
def add_header(r):
    """
    Add headers to both force latest IE rendering engine or Chrome Frame,
    and also to cache the rendered page for 10 minutes.
    """
    r.headers["Cache-Control"] = "no-cache, no-store, must-revalidate"
    r.headers["Pragma"] = "no-cache"
    r.headers["Expires"] = "0"
    r.headers['Cache-Control'] = 'public, max-age=0'
    return r

如果添加此选项,则在完成每个请求后将调用此函数。请看这里

如果有人能向我解释为什么页头处理程序无法覆盖标题,我会很高兴?

谢谢。



 类似资料:
  • 问题内容: 我有一个模板,显示作者可以编辑/删除的各种条目。用户可以单击“删除”来删除其帖子 删除后,用户将被重定向到条目页面,但该项目仍然存在,因此需要再次重新加载页面以显示删除效果。如果我禁用缓存,问题就会消失,但是我真的很想在所有其他页面中都拥有缓存… 添加这些标签无效,我认为我的浏览器只会忽略它们 我启用缓存槽: 有什么方法可以针对特定页面禁用它吗? 编辑 如建议,我尝试使用包装器: 并将

  • 问题内容: 当我使用Alamofire两次发送GET请求时,我得到的响应是相同的,但是我期望得到不同的响应。我想知道这是否是由于缓存造成的,如果是这样,我想知道如何禁用它。 问题答案: 迅捷3,alamofire 4 我的解决方案是: 为Alamofire创建扩展: 并使用它:

  • 问题内容: 在一个课堂项目中,我的老师告诉我们进行一些代码评估(C语言),并且这样做,我们需要在测试期间禁用磁盘缓存。 当前我正在使用Ubuntu 12.04,该怎么做? 谢谢。 问题答案: 您需要root用户权限才能执行此操作。您可以运行命令以禁用写缓存,在该驱动器中必须将驱动器替换为设备: 您还可以像这样选择性地禁用对单个分区的写缓存:。 要重新启用缓存,只需使用参数。 男子hdparm的,人

  • 问题内容: 我想向用户显示一些文本。我要发送的字符串变量包含多个换行符,并且我不想显示。所以我做了: bar.html: 但是启用了自动转义,我看到的是。同样,我的方法也不安全,我希望除文本外的每个标记都被转义。我看了flask.Markup模块,但是它们也不起作用。 正确的方法是什么? 问题答案: 您可以采用两种合理的方法。 解决方案1 当您将不安全的输入和HTML组合到一个变量中时,实际上是一

  • 问题内容: 我现在有点泡菜。我正在构建一个将从CGI后端获取数据的网页。我无法控制CGI后端,也无法控制服务器(因此无法控制mod_headers或mod_expires)。同样,由于脚本的参数,我无法向每个请求附加唯一值(例如’&089u0af0d98)。使用XmlHttpRequest对象的请求是AJAX。我尝试设置“ If-Modified-Since”和“ Cache-Control”请求

  • 我制作了一个html文件,在这里我使用JavaScript从文本文件中查看表列表。这里的问题是,每次我在平板电脑的PhoneGap中输入页面时,它都会显示旧内容。在我的电脑上试用时,我必须键入Ctrl F5以获取最新内容。 如何让我的html页面更新PhoneGap中的内容? 我找到了一些用于禁用缓存的元标记,但它对我不起作用。