Dev*_*per 6 caching symfony foshttpcachebundle
我尝试标注
* @Cache(expires="+10 hours", public=false)
Run Code Online (Sandbox Code Playgroud)
或在控制器中
$maxAge = 60*60;
$response->setExpires(Carbon::create()->addHour());
$response->setSharedMaxAge($maxAge);
$response->setPublic();
$response->setMaxAge($maxAge);
Run Code Online (Sandbox Code Playgroud)
而且还有 Cache-Control: max-age=0, must-revalidate, private
应用使用会话,用户正在登录-我想要-缓存私有,但没有任何效果-我总是能得到这个。
我已经添加 FOS\HttpCacheBundle\FOSHttpCacheBundle()
(只需添加)希望它能覆盖symfony缓存并允许将发送缓存设为私有-但什么都不会改变。
小智 9
从Symfony 3.4和4.0开始,此行为是新的。如果用户会话已初始化,它将始终按照您的问题中所述设置标头。
在Symfony 4.1中引入的功能可以覆盖此行为。但是,由于这是一项新功能,因此不会反向移植到Symfony 3.4。
$response->headers->set(AbstractSessionListener::NO_AUTO_CACHE_CONTROL_HEADER, 'true');
Run Code Online (Sandbox Code Playgroud)
您可以在Symfony文档中阅读有关此内容的内容:HTTP缓存和用户会话
| 归档时间: |
|
| 查看次数: |
1430 次 |
| 最近记录: |