首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rails 3引擎&静态资产

Rails 3引擎&静态资产
EN

Stack Overflow用户
提问于 2010-11-24 11:27:21
回答 5查看 14.2K关注 0票数 7

我正在建立一个引擎,我已经捆绑成一个宝石(gmaps4rails)。我在rails的/public应用程序中复制了引擎的/public。

在开发过程中,一切都很好,但在生产中却无法工作:似乎找不到(我的引擎和我的主要应用程序)的静态资产。

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

代码语言:javascript
复制
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"):

我做了几件事:

  1. 在我的应用程序的production.rb中,我设置: config.serve_static_assets =真 这解决了问题,但不够优雅,我希望将其保持为false,并在引擎中添加配置:)
  2. 我听从了这里的建议,但没有成功。
EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2010-11-25 21:50:14

由于性能原因,静态资产服务在生产模式下是禁用的。您的Your服务器应该配置为服务这些资产。

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

票数 7
EN

Stack Overflow用户

发布于 2011-01-11 19:46:56

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

config.serve_static_assets =真

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

票数 5
EN

Stack Overflow用户

发布于 2011-03-27 11:16:28

在您的引擎中,替换:

代码语言:javascript
复制
initializer "static assets" do |app|
  app.middleware.use ::ActionDispatch::Static, "#{root}/public"
end

通过以下方式:

代码语言:javascript
复制
initializer "static assets" do |app|
      app.middleware.insert_before(::ActionDispatch::Static, ::ActionDispatch::Static, "#{root}/public")
end
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4266232

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档