2015-10-12 47 views
0

我正在使用资产管理器来服务我的css和js文件,但浏览器正在将它们加载到每个页面请求上,而不是在本地缓存它们。我在检索css/js文件时检查了Last-Modified响应标头,它与请求的时间相同,我假设它是为什么它以200响应而不是304返回完整文件。未被浏览器缓存的Symfony assteic资源

我现在用的是生产环境具有以下配置:

assetic: 
    debug:   "%kernel.debug%" 
    use_controller: false 

    filters: 
     cssrewrite: ~ 
     lessphp: 
      apply_to: "\.less$" 

      formatter: "compressed" 
      preserve_comments: false 

我怎样才能得到的Symfony发送创建assetic文件的最后修改时间,以便它在浏览器缓存?

回答

1

Assetic或Symfony不会为任何资产文件设置任何Last-Modified缓存标头。 Assetic只生成任何需要的css/js文件,并修改使用它们的任何链接,但随后它们将作为任何其他静态文件由Web服务器提供服务。您应该查看您的Web服务器配置,以了解如何为静态文件设置Last-Modified标头。

+0

感谢您的回复。事实证明,Apache为etag添加'gzip'后缀是一个问题(http://serverfault.com/questions/636976/why-does-apache-send-200-ok-while-last-modified-matches -if-Modified-Since的)。尽管禁用etags并不能使禁用gzip成功。 – dk80