因此,在Symfony2中,我需要执行以下操作:
$response->headers->addCacheControlDirective();
$response->headers->addCacheControlDirective();
$response->headers->addCacheControlDirective();
$response->headers->addCacheControlDirective();
上述方法在内部:
namespace Symfony'Component'HttpFoundation;
class HeaderBag
我通过更新我的app_dev.php和app.php并添加以下内容来实现它:
$kernel = new AppKernel('dev', true);
$kernel->loadClassCache();
$request = Request::createFromGlobals();
$response = $kernel->handle($request);
$response->headers->addCacheControlDirective('no-cache', true);
$response->headers->addCacheControlDirective('max-age', 0);
$response->headers->addCacheControlDirective('must-revalidate', true);
$response->headers->addCacheControlDirective('no-store', true);
这是修改"我应该做其他事情吗?"的标题的正确方法吗?
对Symfony来说有点陌生,我想以正确的方式做每件事。
您的解决方案会起作用,但这不是最佳实践。Symfony2的强大功能之一是其基于事件的内核,IMO的更好方法是在kernel.response Event上编写一个Listener来更改标头。此外,例如,通过这种方式,您可以检查您的路线。
可以为HttpCacheListener找到一个时髦的实现,也可以看看他的服务定义。