我已经在Heroku上安装了一些基本的应用程序没有问题,而且这个(Rails 3.1.3)看起来很好,因为它显示了Rails欢迎页面
public/index.html.erb
但当我删除该页面然后设置
root :to => 'users#index'
我遇到了问题。在heroku日志中,它表示存在路由错误
ActionController::RoutingError (No route matches [GET] "/assets/rails.png"):
有谁知道这是关于什么的?
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
答案 0 :(得分:11)
无需预编译和混乱您的git!
heroku将预编译您的资产
使用rails 3.1.x ,您已将其添加到 application.rb
config.assets.initialize_on_precompile = false
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
答案 1 :(得分:9)
在您推送到Heroku之前看起来您可能没有预编译您的资产,请尝试:
rake assets:precompile
git add .
etc etc
我认为这应该有所帮助。有关详细信息,请参阅此处:http://devcenter.heroku.com/articles/rails31_heroku_cedar
答案 2 :(得分:2)
使用rails 3.2.3进行瘦(on heroku)延迟启动时我必须这样做:
在config / application.rb中:
if defined?(Bundler)
# If you precompile assets before deploying to production, use this line
# Bundler.require(*Rails.groups(:assets => %w(development test)))
# If you want your assets lazily compiled in production, use this line
Bundler.require(:default, :assets, Rails.env)
end
...
module Romulo
class Application < Rails::Application
...
# Enable the asset pipeline
config.assets.enabled = true
# Version of your assets, change this if you want to expire all your assets
config.assets.version = '1.0'
# get precompilation working on heroku:
config.assets.initialize_on_precompile = true
config.serve_static_assets = false
end
end
在config / environments / production.rb中:
# Compress JavaScripts and CSS
config.assets.compress = true
# Don't fallback to assets pipeline if a precompiled asset is missed
config.assets.compile = true
# Generate digests for assets URLs
config.assets.digest = true
无需预编译资产。