我有一个模板,显示作者可以编辑/删除的各种条目。用户可以单击“删除”来删除其帖子
删除后,用户将被重定向到条目页面,但该项目仍然存在,因此需要再次重新加载页面以显示删除效果。如果我禁用缓存,问题就会消失,但是我真的很想在所有其他页面中都拥有缓存…
添加这些标签无效,我认为我的浏览器只会忽略它们
<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" />
我启用缓存槽:
@app.after_request
def add_header(response):
response.headers['X-UA-Compatible'] = 'IE=Edge,chrome=1'
response.headers['Cache-Control'] = 'public, max-age=600'
return response
有什么方法可以针对特定页面禁用它吗?
编辑
如建议,我尝试使用包装器:
def no_cache(f):
def new_func(*args, **kwargs):
resp = make_response(f(*args, **kwargs))
resp.cache_control.no_cache = True
return resp
return update_wrapper(new_func, f)
并将需要的页面包装在@no_cache装饰器中,仍然没有运气…
仅当特定页面没有此类标题时,才可以尝试添加缓存控制标题:
@app.after_request
def add_header(response):
response.headers['X-UA-Compatible'] = 'IE=Edge,chrome=1'
if ('Cache-Control' not in response.headers):
response.headers['Cache-Control'] = 'public, max-age=600'
return response
在你的页面代码中-例如:
@app.route('/page_without_cache')
def page_without_cache():
response.headers['Cache-Control'] = 'no-cache, no-store, must-revalidate'
response.headers['Pragma'] = 'no-cache'
return 'hello'
重点是,你不应覆盖@app.after_request
所有页面的标题-仅适用于未明确关闭缓存的页面。
此外,你可能希望将添加标头的代码移动到诸如@no_cache
- 的包装器中,因此可以像这样使用它:
@app.route('/page_without_cache')
@no_cache
def page_without_cache():
return 'hello'
我如何在Drupal 9中禁用特定页面的缓存,我找到了一个解决方案,但它用于禁用所有页面的缓存,解决方案是:在settings.yml中添加此代码: 这是工作,但我只想禁用特定页面的缓存。谢谢。
我正在寻找禁用特定页面的手势。我遇到了许多帖子,建议将MasterDetailPage的设置为false以禁用它。这有效,但出于某种原因并不总是如此。 目前我只想在登录页面禁用手势,所以在身份验证时我启用手势,在出现时我禁用。 我遇到的问题是,如果用户切换应用程序并返回并退出,手势仍然启用。这让我认为正在触发不同的MasterDetailePage上下文。 有没有人遇到过这个问题,或者对我有什么指
问题内容: 我有一些缓存问题。我正在运行一个很小的Web应用程序,该应用程序读取一帧并将其保存到磁盘,然后在浏览器窗口中显示。 我知道,这可能不是最好的解决方案,但是每次我使用相同的名称保存此读取帧时,任何浏览器都会对其进行缓存。 我试图使用html meta-tags-没有成功: 另外,我已经尝试过这一步骤(特定于烧瓶): 这是我尝试修改标头的方式: Google Chrome和Safari仍然
在Docker文件中,我有几个运行命令,每次构建Docker图像时,我都希望使用这些命令运行。 我知道docker构建-无缓存将禁用整个Dockerfile的缓存。 是否可以禁用特定RUN命令的缓存?
问题内容: 如何禁用缓存? 应该设置哪些标头? 您能提供一个代码段吗? 问题答案: 这会将响应的缓存设置为禁用:
我的问题是。当用户请求index.jsp页面时,我该如何“说”。在显示index.jsp页面之前,调用servletX获取内容,并将其发送回index.jsp页面? 我将jsp和servlet映射到一起,如下所示 但不知道我如何把心事送回自我?getServletContext().getRequestDispatcher(???).forward(请求,响应);