【问题标题】:Why do assets fail to load in production mode?为什么资产无法在生产模式下加载?
【发布时间】:2014-06-01 02:47:26
【问题描述】:

Ruby 版本:2.0.0

Rails 版本:4.0.1

我的应用程序开发一直很顺利,直到我尝试推送到 ninefold,我的所有资产都坏了。

看到这个后,我执行了rails server -e production,看起来一切都在本地也中断了。我的生产环境会导致这种情况吗?

日志

 Marker - Apr 16, 2014, 7:59:26 PM
I, [2014-04-16T19:59:27.178088 #2603]  INFO -- : Started GET "/" for 127.0.0.1 at 2014-04-16 19:59:27 -0500
I, [2014-04-16T19:59:27.179617 #2603]  INFO -- : Processing by FrontEndController#index as HTML
I, [2014-04-16T19:59:27.181418 #2603]  INFO -- :   Rendered front_end/index.html.erb within layouts/application (0.9ms)
I, [2014-04-16T19:59:27.182203 #2603]  INFO -- :   Rendered layouts/_frontend_navigation.html.erb (0.2ms)
I, [2014-04-16T19:59:27.182498 #2603]  INFO -- : Completed 200 OK in 3ms (Views: 2.2ms | ActiveRecord: 0.0ms)
I, [2014-04-16T19:59:27.261664 #2603]  INFO -- : Started GET "/assets/application-1c1eb49916824f465443a709172a580a.css" for 127.0.0.1 at 2014-04-16 19:59:27 -0500
F, [2014-04-16T19:59:27.270671 #2603] FATAL -- : 
ActionController::RoutingError (No route matches [GET] "/assets/application-1c1eb49916824f465443a709172a580a.css"):
  actionpack (4.0.1) lib/action_dispatch/middleware/debug_exceptions.rb:21:in `call'
  actionpack (4.0.1) lib/action_dispatch/middleware/show_exceptions.rb:30:in `call'
  railties (4.0.1) lib/rails/rack/logger.rb:38:in `call_app'
  railties (4.0.1) lib/rails/rack/logger.rb:20:in `block in call'
  activesupport (4.0.1) lib/active_support/tagged_logging.rb:67:in `block in tagged'
  activesupport (4.0.1) lib/active_support/tagged_logging.rb:25:in `tagged'
  activesupport (4.0.1) lib/active_support/tagged_logging.rb:67:in `tagged'
  railties (4.0.1) lib/rails/rack/logger.rb:20:in `call'
  actionpack (4.0.1) lib/action_dispatch/middleware/request_id.rb:21:in `call'
  rack (1.5.2) lib/rack/methodoverride.rb:21:in `call'
  rack (1.5.2) lib/rack/runtime.rb:17:in `call'
  activesupport (4.0.1) lib/active_support/cache/strategy/local_cache.rb:83:in `call'
  rack (1.5.2) lib/rack/sendfile.rb:112:in `call'
  railties (4.0.1) lib/rails/engine.rb:511:in `call'
  railties (4.0.1) lib/rails/application.rb:97:in `call'
  rack (1.5.2) lib/rack/lock.rb:17:in `call'
  rack (1.5.2) lib/rack/content_length.rb:14:in `call'
  rack (1.5.2) lib/rack/handler/webrick.rb:60:in `service'
  /Users/drewwyatt/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/2.0.0/webrick/httpserver.rb:138:in `service'
  /Users/drewwyatt/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/2.0.0/webrick/httpserver.rb:94:in `run'
  /Users/drewwyatt/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/2.0.0/webrick/server.rb:295:in `block in start_thread'


I, [2014-04-16T19:59:27.271803 #2603]  INFO -- : Started GET "/stylesheets/frontend.css" for 127.0.0.1 at 2014-04-16 19:59:27 -0500
F, [2014-04-16T19:59:27.273875 #2603] FATAL -- : 
ActionController::RoutingError (No route matches [GET] "/stylesheets/frontend.css"):
  actionpack (4.0.1) lib/action_dispatch/middleware/debug_exceptions.rb:21:in `call'
  actionpack (4.0.1) lib/action_dispatch/middleware/show_exceptions.rb:30:in `call'
  railties (4.0.1) lib/rails/rack/logger.rb:38:in `call_app'
  railties (4.0.1) lib/rails/rack/logger.rb:20:in `block in call'
  activesupport (4.0.1) lib/active_support/tagged_logging.rb:67:in `block in tagged'
  activesupport (4.0.1) lib/active_support/tagged_logging.rb:25:in `tagged'
  activesupport (4.0.1) lib/active_support/tagged_logging.rb:67:in `tagged'
  railties (4.0.1) lib/rails/rack/logger.rb:20:in `call'
  actionpack (4.0.1) lib/action_dispatch/middleware/request_id.rb:21:in `call'
  rack (1.5.2) lib/rack/methodoverride.rb:21:in `call'
  rack (1.5.2) lib/rack/runtime.rb:17:in `call'
  activesupport (4.0.1) lib/active_support/cache/strategy/local_cache.rb:83:in `call'
  rack (1.5.2) lib/rack/sendfile.rb:112:in `call'
  railties (4.0.1) lib/rails/engine.rb:511:in `call'
  railties (4.0.1) lib/rails/application.rb:97:in `call'
  rack (1.5.2) lib/rack/lock.rb:17:in `call'
  rack (1.5.2) lib/rack/content_length.rb:14:in `call'
  rack (1.5.2) lib/rack/handler/webrick.rb:60:in `service'
  /Users/drewwyatt/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/2.0.0/webrick/httpserver.rb:138:in `service'
  /Users/drewwyatt/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/2.0.0/webrick/httpserver.rb:94:in `run'
  /Users/drewwyatt/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/2.0.0/webrick/server.rb:295:in `block in start_thread'


I, [2014-04-16T19:59:27.274918 #2603]  INFO -- : Started GET "/javascripts/frontend.js" for 127.0.0.1 at 2014-04-16 19:59:27 -0500
F, [2014-04-16T19:59:27.278129 #2603] FATAL -- : 
ActionController::RoutingError (No route matches [GET] "/javascripts/frontend.js"):
  actionpack (4.0.1) lib/action_dispatch/middleware/debug_exceptions.rb:21:in `call'
  actionpack (4.0.1) lib/action_dispatch/middleware/show_exceptions.rb:30:in `call'
  railties (4.0.1) lib/rails/rack/logger.rb:38:in `call_app'
  railties (4.0.1) lib/rails/rack/logger.rb:20:in `block in call'
  activesupport (4.0.1) lib/active_support/tagged_logging.rb:67:in `block in tagged'
  activesupport (4.0.1) lib/active_support/tagged_logging.rb:25:in `tagged'
  activesupport (4.0.1) lib/active_support/tagged_logging.rb:67:in `tagged'
  railties (4.0.1) lib/rails/rack/logger.rb:20:in `call'
  actionpack (4.0.1) lib/action_dispatch/middleware/request_id.rb:21:in `call'
  rack (1.5.2) lib/rack/methodoverride.rb:21:in `call'
  rack (1.5.2) lib/rack/runtime.rb:17:in `call'
  activesupport (4.0.1) lib/active_support/cache/strategy/local_cache.rb:83:in `call'
  rack (1.5.2) lib/rack/sendfile.rb:112:in `call'
  railties (4.0.1) lib/rails/engine.rb:511:in `call'
  railties (4.0.1) lib/rails/application.rb:97:in `call'
  rack (1.5.2) lib/rack/lock.rb:17:in `call'
  rack (1.5.2) lib/rack/content_length.rb:14:in `call'
  rack (1.5.2) lib/rack/handler/webrick.rb:60:in `service'
  /Users/drewwyatt/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/2.0.0/webrick/httpserver.rb:138:in `service'
  /Users/drewwyatt/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/2.0.0/webrick/httpserver.rb:94:in `run'
  /Users/drewwyatt/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/2.0.0/webrick/server.rb:295:in `block in start_thread'

【问题讨论】:

  • 仅供参考,在生产环境中让 Rails 为静态资产提供服务并不常见;这是一项更适合 Nginx 等“传统”网络服务器的任务。

标签: ruby-on-rails ruby-on-rails-4 asset-pipeline


【解决方案1】:

您是否尝试在 config/environments/production.rb 中设置 config.serve_static_assets = false ?(请参阅No route matches [GET] /assets

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-08-14
    • 2015-11-20
    • 1970-01-01
    • 2023-02-02
    • 1970-01-01
    • 2012-01-26
    • 2021-09-19
    相关资源
    最近更新 更多