首先是 Rails4 应用程序不再提供 public/index.html http://blog.remarkablelabs.com/2012/12/dynamic-index-html-rails-4-countdown-to-2013, or 应用程序/资产/rails.png,因为这些文件现在由 Rails gem 本身处理,所以您可以放心地忽略与它们相关的所有讨论。
其次,我建议你ignore中给出的建议question https://stackoverflow.com/questions/8865712/rails-3-1-3-on-heroku-no-route-matches-get-assets-rails-png您链接到,因为它与rails4 完全不相关。如果您使用 heroku,则无需预编译您的资产。当您将应用程序推送给他们时,他们会为您做这件事。可能值得删除您在运行时创建的 public/assets 文件夹rake assets:precompile
因为它只会妨碍你
第三,删除添加到 config/application.rb 的代码,因为有Rails 4 中没有资产组 http://edgeguides.rubyonrails.org/upgrading_ruby_on_rails.html#upgrading-from-rails-3-2-to-rails-4-0-gemfile
第四,heroku 曾经向您的应用程序注入一个用于提供静态资源的插件,但现在您需要自己做 https://devcenter.heroku.com/articles/rails4#heroku-gems将以下内容添加到您的 Gemfile 中:
gem 'rails_log_stdout', github: 'heroku/rails_log_stdout'
gem 'rails3_serve_static_assets', github: 'heroku/rails3_serve_static_assets'
第五,您正在使用Webrick服务器。 Heroku 建议您切换到独角兽 https://devcenter.heroku.com/articles/rails-unicorn.
最后,不用担心默认的 Rails 登陆页面没有显示在 Heroku 上。这可能是他们系统中的一个错误,它发生在我身上,它也会发生在下一个人身上,如果他也尝试的话,它很可能会发生在马茨身上。没什么大不了的。继续前进吧。您的应用程序已准备好,您可以开始开发自己的登陆页面。
祝你好运,不管怎样,这里有一个针对 heroku 优化的非常简单的 Gemfile 示例:
source 'https://rubygems.org'
# you are using Ruby 1.9.3, better to 2.0.0 upgrade for more speed
ruby '2.0.0'
gem 'rails', '4.0.0.rc1'
gem 'sass-rails', '~> 4.0.0.rc1'
gem 'uglifier', '>= 1.3.0'
gem 'coffee-rails', '~> 4.0.0'
gem 'jquery-rails'
gem 'turbolinks'
gem 'jbuilder', '~> 1.0.1'
# The asset_sync gem is WELL worth using
# but you should read more about it before deciding
# https://github.com/rumblelabs/asset_sync
# gem 'asset_sync'
# only want sqlite in dev and test envs
group :development, :test do
gem 'sqlite3'
end
group :production do
gem 'pg' # dont want sqlite in production
gem 'unicorn' # make sure you follow installation instructions for this gem
gem 'rails_log_stdout', github: 'heroku/rails_log_stdout'
gem 'rails3_serve_static_assets', github: 'heroku/rails3_serve_static_assets'
end
group :doc do
gem 'sdoc', require: false
end