4

我将一些文件放在静态目录中,这些文件通过一些后端处理保持更新。我曾经url_for()将 url 返回到客户端。

但是我发现即使我从静态目录中删除旧文件并重新生成更新的文件,它仍然会在客户端浏览器上显示旧文件的内容。我认为旧文件已被缓存。

有谁知道如何为该url_for()功能设置无缓存?

提前致谢!

4

2 回答 2

1

不久前,我写了一篇关于此的博客文章。

基本上,您需要创建一个要发送的响应,然后在响应上设置一些额外的标头,然后发送响应:

def send_url(method):

    response = app.make_response(url_for(method))

    response.headers.add('Last-Modified', datetime.datetime.now())
    response.headers.add('Cache-Control', 'no-store, no-cache, must-revalidate, post-check=0, pre-check=0')
    response.headers.add('Pragma', 'no-cache')

    return response
于 2012-11-12T10:45:55.617 回答
0

仅仅因为偶尔有一个新版本就禁用所有缓存确实不是一个好习惯。css 和 js 的缓存带来了巨大的性能优势。

好的网站所做的是将文件的时间戳添加到资源 URL 中。例如,在 Flask 中,这是一种透明地执行此操作的方法:http: //flask.pocoo.org/snippets/40/

于 2016-01-29T09:21:45.727 回答