2013-01-18 52 views
2

的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; 

在樹枝中擴展

+0

爲什麼要刪除他們?他們是你的朋友:? – KingCrunch

+0

我不想刪除它們,我不想讓它們不能顯示在我的頁面上 –

回答

2

標頭是HttpFoundation中Response class的一部分。您可以使用headers屬性來管理它們,這與您在代碼中使用的屬性相同。該屬性是ResponseHaderBag class的一個實例,它具有刪除功能。

要刪除名爲「緩存控制」頭,所以,如果你寫:

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

它將刪除該頭。但是如果你檢查Response的源碼,你會發現它的一些功能取決於這個頭文件,所以我不確定刪除它是否是一個好主意。

默認情況下,這個頭沒有錯,只是返回'no-cache',這意味着瀏覽器不會緩存你的頁面。但是如果沒有這個頭文件,你將無法緩存頁面。

如果您的目標是自己手動發送緩存控制頭,請考慮使用Symfony2's built in functionality代替。

+0

它們仍然顯示:s –

1

對於大家正在尋找一個答案,我繼續在上面的帖子,並試圖使用渲染功能,從樹枝,但與我的自定義模塊

這是我把它工作得很好:)

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