![](/img/trans.png)
[英]Asset precompilation with Phusion Passenger, Apache and Rails
[英]Rails 3 Asset Pipeline + Apache + Phusion Passenger
我正在使用Rails 3.1 w / asset pipeline,phusion 3.0.x和apache 2.2.17。
在http://guides.rubyonrails.org/asset_pipeline.html的配置文档中,在4.1.1节中,它指出我需要在我的apache配置中添加一个部分:
<LocationMatch "^/assets/.*$">
# Some browsers still send conditional-GET requests if there's a
# Last-Modified header or an ETag header even if they haven't
# reached the expiry date sent in the Expires header.
Header unset Last-Modified
Header unset ETag
FileETag None
# RFC says only cache for 1 year
ExpiresActive On
ExpiresDefault "access plus 1 year"
</LocationMatch>
我一直认为Phusion Passenger刚刚“处理”了这个......或者我是不是在忽视RTFM? 如果我想利用指纹识别,我是否需要将其添加到apache配置中?
如果您想要资产管道的全部好处,您确实需要将此添加到Apache配置中。 如果没有该部分,您的Apache配置可能会特别告诉浏览器不要缓存资产 - 导致浏览器和服务器之间不必要的往返次数。
为了使其工作,您可能需要启用一些Apache模块。 去做这个:
sudo a2enmod
# Choose headers
sudo a2enmod
# Choose expires
sudo service apache2 restart
要调试您的设置,我建议使用Live Headers Firefox插件。 使用它,特别请求资产URL(例如http://mysite.com/assets/application-8a0ae0b2d708f797674b7123c37501ba.css) ,并在进行此更改之前和之后查看缓存标头。 通过在任何页面上执行查看源来查找示例资产URL。
更改后,您应该看到缓存过期设置为将来一年。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.