Rails 3引擎和静态资产

apn*_*ing 7 static assets rails-engines ruby-on-rails-3

我正在构建一个我作为宝石捆绑的引擎(gmaps4rails).我在我的rails应用程序的/ public中复制了我的引擎的/ public.

一切都在开发中工作正常,但无法在生产中工作:看起来没有找到静态资产(我的引擎和我的主应用程序).

日志告诉以下内容(只是一个摘要):

Started GET "/javascripts/application.js?1286294679" for 127.0.0.1 at Wed Nov 24 00:22:20 +0100 2010

ActionController::RoutingError (No route matches "/javascripts/application.js"):


Rendered /Users/me/.rvm/rubies/ree-1.8.7-2010.02/lib/ruby/gems/1.8/gems/actionpack-3.0.3/lib/action_dispatch/middleware/templates/rescues/routing_error.erb within rescues/layout (1.1ms)


Started GET "/stylesheets/gmaps4rails.css?1290554221" for 127.0.0.1 at Wed Nov 24 00:22:20 +0100 2010

ActionController::RoutingError (No route matches "/stylesheets/gmaps4rails.css"):
Run Code Online (Sandbox Code Playgroud)

我做了一些事情:

  1. 在我的应用程序的production.rb中,我设置:

    config.serve_static_assets = true

    这解决了问题,但不够优雅,我想保持它为假并在引擎中添加配置:)

  2. 我按照这里的建议没有成功.

pla*_*ang 7

出于性能原因,在生产模式下禁用静态资产服务.您的网络服务器应配置为提供这些资产.

如果您使用nginx作为网络服务器,请查看此讨论.


Jua*_*nin 5

在Rails 3.x中尝试在config/environments/production.rb中设置它

config.serve_static_assets = true

默认情况下,Rails假设您使用的是资产服务器(lightttp,nginx或Apache)