我在production.rb
中有以下配置 # Disable Rails's static asset server (Apache or nginx will already do this)
config.serve_static_assets = false
# Compress JavaScripts and CSS
config.assets.compress = true
# Choose the compressors to use
config.assets.js_compressor = :uglifier
config.assets.css_compressor = :yui
# Don't fallback to assets pipeline if a precompiled asset is missed
config.assets.compile = true
# Generate digests for assets URLs.
config.assets.digest = true
但是当生产服务器上的ruby on rails应用程序出现以下错误时:
Error compiling CSS asset
LoadError: cannot load such file -- yui-compressor
在评论专线LoadError: cannot load such file -- yui-compressor
上,一切顺利
所有我需要一个压缩机,gzip压缩资产然后发送以提高性能!所以,这里有什么问题或者还有其他选择吗?
更新:
另外javascript压缩无效,因为firefox的yslow插件也需要压缩javascripts。
答案 0 :(得分:7)
你是否在你的Gemfile中加入了yui-compressor gem?如果没有,那么包括它,运行'bundle install',然后Rails应该能够找到它。
答案 1 :(得分:3)
我发现必须在网络服务器上启用压缩才能生效。
所需要的只是添加以下内容:
AddOutputFilterByType DEFLATE text/html text/css application/x-javascript application/javascript
对于我的案例,在Apache {phusion passenger}的<VirtualHost *:80></VirtualHost>
指令中。