Guy*_*ing 6 ruby gzip heroku asset-pipeline ruby-on-rails-3.2
我有一个Rails 3.2应用程序,我正在Heroku Cedar堆栈上部署.这意味着应用程序本身负责提供其静态资产.我希望这些资产被gzip压缩,所以我插入Rack::Deflater到我的中间件堆栈中production.rb:
middleware.insert_after('Rack::Cache', Rack::Deflater)
Run Code Online (Sandbox Code Playgroud)
...并且curl告诉我这个广告的作用.
但是,由于Heroku将全力以赴地运行rake assets:precompile,生成一堆预先压缩的资产,我非常喜欢使用它们(而不是让Rack::Deflater所有的工作再次完成).我已经看到了使用nginx(没有在Heroku上使用)和CDN(不想使用CDN)的配方,但我还没有看到任何可以单独运行的东西.我已经将一个机架中间件一起攻击,但是我想知道这是否是最好的方法呢?
由于 deflator 位于机架缓存之后,因此 deflator 只需要做一次工作,之后压缩的资源将从机架缓存中提供(假设缓存足够大,这样它们就不会偶尔被淘汰)。
也就是说,你的中间件看起来很酷,你应该让它成为一个宝石并在博客上介绍它,也许它将成为人们开始使用的:-)