【发布时间】:2011-12-11 02:15:15
【问题描述】:
几个月来,我一直在 Heroku Cedar Stack 上运行 Rails 3.1 应用程序。我正在使用 Rack::Deflater 中间件来压缩我的内容并通过
config.middleware.insert_before ActionDispatch::Static, Rack::Deflater
在我的 staging.rb 文件中。
但是,从上周开始,我在部署到 Heroku 时出现以下错误
Running: rake assets:precompile
rake aborted!
No such middleware to insert before: ActionDispatch::Static
但是,运行 rake 中间件仍然返回
use Rack::Cache
use Rack::Deflater
use ActionDispatch::Static
use Rack::Lock
并且提供的内容仍然是 gzip 压缩的。但是,由于预编译失败,资产没有被编译(缩小)。手动 rake precompile::asets 也无济于事。
所以,我假设 ActionDispatch::Static 在资产预编译期间不可用。因此,我尝试在 Rack::Lock 之前插入 Rack::Deflater,现在我的资产已编译且没有任何错误消息,但提供的内容未压缩。
那么,我需要做些什么来 gzip 和编译我的资产?我错过了什么?谢谢。
【问题讨论】:
标签: ruby-on-rails heroku gzip