显示缓存标头

时间:2013-01-18 19:10:52

标签: php symfony header

Symfony 2显示缓存标题,我想知道如何隐藏这些

实施例

HTTP/1.0 200 OK Cache-Control: no-cache Content-Type: text/html Date: Fri, 18 Jan 2013 19:07:08 GMT HTTP/1.0 200 OK Cache-Control: no-cache Date: Fri, 18 Jan 2013 19:07:08 GMT X-Debug-Token: 50f99d5cba4da

我在我的代码中使用它

return new Response($this->renderView('Shout/view/default.html.twig'));

调用
$httpKernel = $this->container->get('http_kernel');
        $response = new Response;
        $response->SetContent($httpKernel->forward('MyBundle:Module/'.$module.'/'.$module.':index'));
        $response->headers->set('Content-Type', 'text/html');
        return $response;

在枝条延伸

3 个答案:

答案 0 :(得分:6)

添加 - > getContent()结束。

http://api.symfony.com/2.0/Symfony/Component/HttpFoundation/Response.html

    $response = $this->forward("MyBundle:Module:$module", array(
            'customer_id'  => $customer_id
    ))->getContent();

    return $response; 

答案 1 :(得分:2)

标题是HttpFoundation中Response class的一部分。您可以使用headers属性管理它们,这与您在代码中使用的属性相同。该属性是ResponseHaderBag class的一个实例,它具有删除功能。

您要删除的标题名为“Cache-Control”,因此如果您编写:

$response->headers->remove('Cache-Control');

它将删除该标头。但是如果你检查一下Response的来源,你会发现它的某些功能取决于这个标题,所以我不确定删除它是不是一个好主意。

默认情况下,此标头没有任何错误,只返回'no-cache',这意味着浏览器不会缓存您的页面。但是如果没有此标题,您将无法缓存页面。

如果您的目标是自己手动发送缓存控制标头,请考虑改用Symfony2's built in functionality

答案 2 :(得分:1)

对于正在寻找答案的每个人,我继续上面的帖子并尝试使用twig的渲染功能,但使用我的自定义模块

这是我得到的,它工作正常:)。

return $this->container->get('templating.helper.actions')->render('MyBundle:Module/'.$module.'/'.$module.':index', $attributes, $options);