使用Rack-Zippy在Heroku中提供压缩资产

时间:2014-08-28 15:39:37

标签: ruby-on-rails ruby compression rack

我按照本教程学习了如何在Heroku中压缩资产。

http://www.cheynewallace.com/serving-compressed-assets-with-heroku-rack-zippy/

这是我的Application.rb文件

require File.expand_path('../boot', __FILE__)

require 'rails/all'

Bundler.require(*Rails.groups)

module Blog
  class Application < Rails::Application

    config.assets.precompile += %w(*.png *.jpg *.jpeg *.gif)
    config.exceptions_app = self.routes

    config.cache_store = :memory_store
    Rails.application.config.middleware.swap(ActionDispatch::Static, 
    Rack::Zippy::AssetServer, Rails.public_path)

  end
end

我的宝石文件

gem 'yui-compressor', '~> 0.12.0'
gem 'rack-zippy'

我运行了heroku run rake中间件并得到了输出

use Rack::Sendfile
use Rack::Zippy:AssetServer

现在,当我访问开发人员工具和网络标签时,我发现其大小几乎与每个资产的内容相同。这意味着资产没有被压缩。

我能找到的唯一类似问题就是这个问题

rack-zippy and option -d in production env doesn't serve static assets

答案没有用。

我应该使用另一台Compressor,因为它看起来像Rack Zippy不起作用。

1 个答案:

答案 0 :(得分:2)

我有类似的问题。当我在config.assets.compile上将config/environments/production.rb设置为false时,事情就开始起作用了。

此外,必须在部署之前预编译资产。