Heroku上的Rails 3.1.3 :(没有路由匹配[GET]"/assets/rails.png")

Lea*_*cim 4 ruby-on-rails heroku

我已经在Heroku上安装了一些基本的应用程序没有问题,这个(Rails 3.1.3)似乎很好,因为它显示了Rails欢迎页面

public/index.html.erb
Run Code Online (Sandbox Code Playgroud)

但当我删除该页面然后设置

root :to => 'users#index'
Run Code Online (Sandbox Code Playgroud)

我遇到了问题.在heroku日志中,它表示存在路由错误

ActionController::RoutingError (No route matches [GET] "/assets/rails.png"):
Run Code Online (Sandbox Code Playgroud)

有谁知道这是关于什么的?

2012-01-14T21:48:29+00:00 heroku[web.1]: Process exited
2012-01-14T21:48:33+00:00 app[web.1]: >> Thin web server (v1.2.6 codename Crazy Delicious)
2012-01-14T21:48:33+00:00 app[web.1]: >> Maximum connections set to 1024
2012-01-14T21:48:33+00:00 app[web.1]: >> Listening on 0.0.0.0:32570, CTRL+C to stop
2012-01-14T21:48:34+00:00 heroku[web.1]: State changed from starting to up
2012-01-14T21:48:35+00:00 app[web.1]: cache: [GET /] miss
2012-01-14T21:48:36+00:00 app[web.1]: 
2012-01-14T21:48:36+00:00 app[web.1]: 
2012-01-14T21:48:36+00:00 app[web.1]: Started GET "/assets/rails.png" for 216.251.147.10 at 2012-01-14 13:48:36 -0800
2012-01-14T21:48:36+00:00 app[web.1]: 
2012-01-14T21:48:36+00:00 app[web.1]: ActionController::RoutingError (No route matches [GET] "/assets/rails.png"):
2012-01-14T21:48:36+00:00 app[web.1]:   
2012-01-14T21:48:36+00:00 app[web.1]: 
2012-01-14T21:48:36+00:00 app[web.1]: 
2012-01-14T21:48:36+00:00 app[web.1]: cache: [GET /assets/rails.png] miss
2012-01-14T21:48:35+00:00 heroku[router]: GET mmcarrier.heroku.com/ dyno=web.1 queue=0 wait=0ms service=19ms status=200 bytes=5907
2012-01-14T21:48:36+00:00 heroku[router]: GET mmcarrier.heroku.com/assets/rails.png dyno=web.1 queue=0 wait=0ms service=30ms status=404 bytes=728
2012-01-14T21:48:46+00:00 app[web.1]: cache: [GET /] miss
2012-01-14T21:48:46+00:00 app[web.1]: 
2012-01-14T21:48:46+00:00 app[web.1]: 
2012-01-14T21:48:46+00:00 app[web.1]: Started GET "/assets/rails.png" for 216.251.147.10 at 2012-01-14 13:48:46 -0800
2012-01-14T21:48:46+00:00 app[web.1]: 
2012-01-14T21:48:46+00:00 app[web.1]: ActionC

2012-01-14T21:48:46+00:00 app[web.1]:   
2012-01-14T21:48:46+00:00 app[web.1]: 
2012-01-14T21:48:46+00:00 app[web.1]: 
2012-01-14T21:48:46+00:00 app[web.1]: cache: [GET /assets/rails.png] miss
2012-01-14T21:48:46+00:00 app[web.1]: cache: [GET /favicon.ico] miss
2012-01-14T21:48:46+00:00 heroku[router]: GET mmcarrier.heroku.com/favicon.ico dyno=web.1 queue=0 wait=0ms service=3ms status=200 bytes=0
2012-01-14T21:48:46+00:00 heroku[router]: GET mmcarrier.heroku.com/ dyno=web.1 queue=0 wait=0ms service=6ms status=200 bytes=5907
2012-01-14T21:48:46+00:00 heroku[router]: GET mmcarrier.heroku.com/assets/rails.png dyno=web.1 queue=0 wait=0ms service=4ms status=404 bytes=728
2012-01-14T21:48:59+00:00 app[web.1]: cache: [GET /] miss
2012-01-14T21:48:59+00:00 heroku[router]: GET mmcarrier.heroku.com/ dyno=web.1 queue=0 wait=0ms service=5ms status=200 bytes=5907
2012-01-14T21:48:59+00:00 app[web.1]: 
2012-01-14T21:48:59+00:00 app[web.1]: 
2012-01-14T21:48:59+00:00 app[web.1]: Started GET "/assets/rails.png" for 216.251.147.10 at 2012-01-14 13:48:59 -0800
2012-01-14T21:48:59+00:00 app[web.1]: 
2012-01-14T21:48:59+00:00 app[web.1]: ActionController::RoutingError (No route matches [GET] "/assets/rails.png"):
2012-01-14T21:48:59+00:00 app[web.1]:   
2012-01-14T21:48:59+00:00 app[web.1]: 
2012-01-14T21:48:59+00:00 app[web.1]: 
2012-01-14T21:48:59+00:00 app[web.1]: cache: [GET /assets/rails.png] miss
2012-01-14T21:48:59+00:00 heroku[router]: GET mmcarrier.heroku.com/assets/rails.png dyno=web.1 queue=0 wait=0ms service=3ms status=404 bytes=728
2012-01-14T21:49:18+00:00 app[web.1]: 
2012-01-14T21:49:18+00:00 app[web.1]: 
2012-01-14T21:49:18+00:00 app[web.1]: Started GET "/assets/rails.png" for 216.251.147.10 at 2012-01-14 13:49:18 -0800
2012-01-14T21:49:18+00:00 app[web.1]: 
2012-01-14T21:49:18+00:00 app[web.1]: ActionController::RoutingError (No route matches [GET] "/assets/rails.png"):
2012-01-14T21:49:18+00:00 app[web.1]: 
2012-01-14T21:49:18+00:00 app[web.1]:   
2012-01-14T21:49:18+00:00 app[web.1]: 
2012-01-14T21:49:18+00:00 app[web.1]: cache: [GET /assets/rails.png] miss
2012-01-14T21:49:18+00:00 heroku[router]: GET mmcarrier.heroku.com/assets/rails.png dyno=web.1 queue=0 wait=0ms service=4ms status=404 bytes=728
2012-01-14T21:49:33+00:00 app[web.1]: cache: [GET /] miss
2012-01-14T21:49:33+00:00 app[web.1]: 
2012-01-14T21:49:33+00:00 app[web.1]: 
2012-01-14T21:49:33+00:00 app[web.1]: Started GET "/assets/rails.png" for 216.251.147.10 at 2012-01-14 13:49:33 -0800
2012-01-14T21:49:33+00:00 app[web.1]: 
2012-01-14T21:49:33+00:00 app[web.1]: ActionController::RoutingError (No route matches [GET] "/assets/rails.png"):
2012-01-14T21:49:33+00:00 app[web.1]:   
2012-01-14T21:49:33+00:00 app[web.1]: 
2012-01-14T21:49:33+00:00 app[web.1]: cache: [GET /assets/rails.png] miss
2012-01-14T21:49:33+00:00 app[web.1]: 
2012-01-14T21:49:34+00:00 app[web.1]: cache: [GET /favicon.ico] miss
2012-01-14T21:49:33+00:00 heroku[router]: GET mmcarrier.heroku.com/ dyno=web.1 queue=0 wait=0ms service=6ms status=200 bytes=5907
2012-01-14T21:49:33+00:00 heroku[router]: GET mmcarrier.heroku.com/assets/rails.png dyno=web.1 queue=0 wait=0ms service=4ms status=404 bytes=728
2012-01-14T21:49:34+00:00 heroku[router]: GET mmcarrier.heroku.com/favicon.ico dyno=web.1 queue=0 wait=0ms service=3ms status=200 bytes=0
2012-01-14T21:50:21+00:00 app[web.1]: cache: [GET /] miss
2012-01-14T21:50:21+00:00 heroku[router]: GET mmcarrier.heroku.com/ dyno=web.1 queue=0 wait=0ms service=4ms status=200 bytes=5907
2012-01-14T21:50:21+00:00 app[web.1]: 
2012-01-14T21:50:21+00:00 heroku[router]: GET mmcarrier.heroku.com/assets/rails.png dyno=web.1 queue=0 wait=0ms service=4ms status=404 bytes=728
2012-01-14T21:50:21+00:00 app[web.1]: Started GET "/assets/rails.png" for 216.251.147.10 at 2012-01-14 13:50:21 -0800
2012-01-14T21:50:21+00:00 app[web.1]: 
2012-01-14T21:50:21+00:00 app[web.1]: 
2012-01-14T21:50:21+00:00 app[web.1]: cache: [GET /assets/rails.png] miss
2012-01-14T21:50:21+00:00 app[web.1]: ActionController::RoutingError (No route matches [GET] "/assets/rails.png"):
2012-01-14T21:50:21+00:00 app[web.1]:   
2012-01-14T21:50:21+00:00 app[web.1]: 
2012-01-14T21:50:21+00:00 app[web.1]: 
2012-01-14T21:52:42+00:00 heroku[slugc]: Slug compilation started
2012-01-14T21:52:54+00:00 heroku[api]: Deploy 983a24d by m73mitchell@gmail.com
2012-01-14T21:52:54+00:00 heroku[api]: Release v8 created by m73mitchell@gmail.com
2012-01-14T21:52:54+00:00 heroku[web.1]: State changed from up to bouncing
2012-01-14T21:52:54+00:00 heroku[web.1]: State changed from bouncing to created
2012-01-14T21:52:54+00:00 heroku[web.1]: State changed from created to starting
2012-01-14T21:52:55+00:00 heroku[slugc]: Slug compilation finished
2012-01-14T21:53:01+00:00 heroku[web.1]: State changed from starting to up
2012-01-14T21:53:05+00:00 heroku[router]: GET mmcarrier.heroku.com/assets/rails.png dyno=web.1 queue=0 wait=0ms service=37ms status=404 bytes=728
2012-01-14T21:53:17+00:00 heroku[router]: GET mmcarrier.heroku.com/assets/rails.png dyno=web.1 queue=0 wait=0ms service=5ms status=404 bytes=728
2012-01-14T21:53:36+00:00 heroku[router]: GET mmcarrier.heroku.com/assets/rails.png dyno=web.1 queue=0 wait=0ms service=2ms status=404 bytes=728
2012-01-14T21:53:38+00:00 heroku[router]: GET mmcarrier.heroku.com/ dyno=web.1 queue=0 wait=0ms service=107ms status=500 bytes=728
2012-01-14T21:53:40+00:00 heroku[router]: GET mmcarrier.heroku.com/ dyno=web.1 queue=0 wait=0ms service=20ms status=500 bytes=728
2012-01-14T21:53:49+00:00 heroku[run.1]: State changed from created to starting
2012-01-14T21:53:52+00:00 heroku[run.1]: State changed from starting to up
2012-01-14T21:53:57+00:00 heroku[run.1]: State changed from up to complete
2012-01-14T21:53:57+00:00 heroku[run.1]: Process exited
2012-01-14T21:55:15+00:00 heroku[router]: GET mmcarrier.heroku.com/assets/rails.png dyno=web.1 queue=0 wait=0ms service=35ms status=404 bytes=728
2012-01-14T21:55:17+00:00 heroku[router]: GET mmcarrier.heroku.com/assets/rails.png dyno=web.1 queue=0 wait=0ms service=3ms status=404 bytes=728
2012-01-14T21:55:22+00:00 heroku[router]: GET mmcarrier.heroku.com/ dyno=web.1 queue=0 wait=0ms service=12ms status=500 bytes=728
2012-01-14T21:56:18+00:00 heroku[router]: GET mmcarrier.heroku.com/ dyno=web.1 queue=0 wait=0ms service=12ms status=500 bytes=728
Run Code Online (Sandbox Code Playgroud)

oma*_*oma 11

不需要预先编译混乱你的git!

heroku将预编译您的资产

使用rails 3.1.x,您将其添加到application.rb

config.assets.initialize_on_precompile = false
Run Code Online (Sandbox Code Playgroud)

更新2012年7月16日

还有rails 3.2.x.

它似乎是ActiveRecord和database.yml的问题!如果您不使用常规数据库,但使用MongoDB,则不需要上述内容.但是,如果这样做,则需要禁用initilize,因为activerecord在初始化时读取数据库表,但在heroku的预编译阶段无法使用数据库.

使用MongoDB没有必要.

/ UPDATE

rails 3.2.x :查看application.rb的顶部.为了清楚起见,OMA评论是我的

if defined?(Bundler)
  # If you precompile assets before deploying to production, use this line
  "OMA - comment this line"
  #Bundler.require(*Rails.groups(:assets => %w(development test)))
  # If you want your assets lazily compiled in production, use this line
  "OMA - uncomment this line"
  Bundler.require(:default, :assets, Rails.env)
end
Run Code Online (Sandbox Code Playgroud)


Jes*_*lak 9

看起来您在推送到Heroku之前可能没有对您的资产进行预编译,请尝试:

rake assets:precompile
git add .
etc etc
Run Code Online (Sandbox Code Playgroud)

我认为这应该有所帮助.有关详细信息,请参阅此处:http://devcenter.heroku.com/articles/rails31_heroku_cedar