我将一些文件放在静态目录中,这些文件通过一些后端处理保持更新。我使用url_for()
将url返回给客户端。
但我发现即使我从静态目录中删除旧文件并重新生成更新的文件,它仍会在客户端浏览器上显示旧文件的内容。我认为旧文件已被缓存。
有谁知道如何为url_for()
功能设置无缓存?
提前致谢!
答案 0 :(得分:1)
我刚才写了一篇blog post。
基本上,你需要创建一个发送响应,然后在响应上设置一些额外的标题,然后发送响应:
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
答案 1 :(得分:0)
禁用所有缓存只是因为有一段时间你有一个新版本,这真的不是一个好习惯。缓存css和js可带来巨大的性能优势。
有什么好的网站可以将文件的时间戳添加到资源网址。例如,在Flask中,这是一种透明地执行此操作的方法:http://flask.pocoo.org/snippets/40/