symfony 的 HTTP 缓存

Http cache for symfony

我想遵循 Google's directive in terms of cache headers for images、脚本和样式。

阅读了 symfony 的 documentation about http cache, I decided to install FOSHttpCacheBundle。我为 ^/Resources/^/css/ 等路径设置了规则。然后我无法使用 Chrome 的控制台为我的图像看到正确的 headers。

或者,我已经读到,因为我的服务器正在处理资源,所以这不是处理这个问题的 Symfony(但我在文档中读到 Symfony Proxy 对 shared-hosting 服务器有好处,这这就是我所拥有的)。

所以我应该按照 in here 的解释向我的 .htaccess 添加行,还是我只是滥用了 FOSHttpCacheBundle? (或两者兼而有之。)

静态文件(包括javascript 文件、CSS 样式表、图像、字体...)直接由网络服务器提供。由于甚至没有为此类文件加载 PHP 模块,因此您必须配置服务器以设置正确的 HTTP headers。如果您使用 Apache,则可以使用 .htaccess 文件来执行此操作,但从性能的角度来看,直接在 httpd.conf/apache2.conf/vhost conf(取决于您的配置)中执行此操作会更好.

如果您还想为动态内容(HTML 由 Symfony 生成...)设置 HTTP 缓存 headers,那么您必须使用 FosHttpCache 或 Symfonny 提供的任何其他方法,例如the @Cache annotation.