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;

小枝の拡張機能で

4

3 に答える 3

2

ヘッダーは、HttpFoundation 内のResponse クラスの一部です。コードで使用したものと同じ headers 属性を使用して、それらを管理できます。その属性は、削除機能を持つResponseHaderBag クラスのインスタンスです。

削除するヘッダーは「Cache-Control」という名前なので、次のように記述します。

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

そのヘッダーを削除します。しかし、Response のソースを確認すると、その機能の一部がこのヘッダーに依存していることがわかります。そのため、これを削除することが本当に良い考えかどうかはわかりません。

デフォルトでは、このヘッダーは何の問題もなく、ブラウザがページをキャッシュしないことを意味する「no-cache」を返すだけです。ただし、このヘッダーがないとページをキャッシュできません。

あなたの目標がキャッシュ制御ヘッダーを自分で手動で送信することである場合は、代わりにSymfony2 の組み込み機能を使用することを検討してください。

于 2013-01-18T19:39:14.497 に答える
1

答えを探しているすべての人のために、私は上記の投稿を続けて、twig の render 関数を使用しようとしましたが、カスタム モジュールを使用しました。

これは私が得たもので、正常に動作します:)

return $this->container->get('templating.helper.actions')->render('MyBundle:Module/'.$module.'/'.$module.':index', $attributes, $options);
于 2013-01-19T14:06:09.657 に答える