【发布时间】:2014-02-07 13:43:42
【问题描述】:
我在这里遇到了一个非常奇怪的问题。我在我的rails 应用程序中使用rack-zippy gem,如果我在没有预编译资产的development 环境中启动它,它就像一个魅力。使用 -d 参数和不使用。
在生产模式下(同一台机器、同一项目、同一目录、同一 gem)它也可以工作。但是如果我用-d 参数(bundle exec rails server -d)启动它来守护服务器,则不会提供预编译的资产。可以用thin 和webrick 重现,但不能用unicorn 重现。
日志说:
ActionController::RoutingError (No route matches [GET]
"/assets/application-b9b75968aed42128cfd75fb78df1e4d1.js"):
但是:
$ l public/assets/application-b9b75968aed42128cfd75fb78df1e4d1.js
-rw-r--r-- 1 public/assets/application-b9b75968aed42128cfd75fb78df1e4d1.js
来自 config/environments/production.rb:
config.serve_static_assets = true
来自 config/application.rb:
config.middleware.swap(ActionDispatch::Static, Rack::Zippy::AssetServer)
还有:
$ rake middleware
use Rack::Sendfile
use Rack::Zippy::AssetServer
(...)
我现在有点困惑。有什么想法吗?
【问题讨论】:
标签: ruby-on-rails ruby asset-pipeline thin