"我们很抱歉,但有些不对劲." 在部署到Heroku之后

Hol*_*bæk 3 ruby mysql git ruby-on-rails heroku

我做了一个小应用程序,用户可以登录/注销,创建等等.我正在使用mySQL作为数据库,一切都在本地环境中正常工作.但是在我将它部署到heroku并迁移数据库等之后,heroku版本无效.当我拖尾日志时,我得到了这个:

2011-10-20T18:48:22+00:00 app[web.1]: Started GET "/" for 83.233.57.240 at 2011-10-20 11:48:22 -0700
2011-10-20T18:48:22+00:00 app[web.1]:   Processing by HomeController#index as HTML
2011-10-20T18:48:22+00:00 app[web.1]: Rendered home/index.html.erb within layouts/application (0.0ms)
2011-10-20T18:48:22+00:00 app[web.1]: Completed 500 Internal Server Error in 2ms
2011-10-20T18:48:22+00:00 app[web.1]: 
2011-10-20T18:48:22+00:00 app[web.1]: ActionView::Template::Error (defaults.js isn't precompiled):
2011-10-20T18:48:22+00:00 app[web.1]:     3:   <head>
2011-10-20T18:48:22+00:00 app[web.1]:     4:     <title><%= content_for?(:title) ? yield(:title) : "Untitled" %></title>
2011-10-20T18:48:22+00:00 app[web.1]:     5:     <%= stylesheet_link_tag "application" %>
2011-10-20T18:48:22+00:00 heroku[router]: GET afternoon-lightning-2154.heroku.com/ dyno=web.1 queue=0 wait=0ms service=7ms status=500 bytes=728
2011-10-20T18:48:22+00:00 app[web.1]:     6:     <%= javascript_include_tag :defaults %>
2011-10-20T18:48:22+00:00 app[web.1]:     7:     <%= csrf_meta_tag %>
2011-10-20T18:48:22+00:00 app[web.1]:     8:     <%= yield(:head) %>
2011-10-20T18:48:22+00:00 app[web.1]:     9:   </head>
2011-10-20T18:48:22+00:00 app[web.1]:   app/views/layouts/application.html.erb:6:in `_app_views_layouts_application_html_erb___2280146998680186378_39052620'
2011-10-20T18:48:22+00:00 app[web.1]: 
2011-10-20T18:48:22+00:00 app[web.1]: 
2011-10-20T18:48:22+00:00 app[web.1]: cache: [GET /] miss
Run Code Online (Sandbox Code Playgroud)

我可以看到它在某个时刻完成了500错误,但我不知道为什么.有什么建议吗?提前致谢!

Ner*_*ian 14

检查配置/环境/生产中是否有此功能

# Fallback to assets pipeline if a precompiled asset is missed
config.assets.compile = true
Run Code Online (Sandbox Code Playgroud)

基本上你的问题是你的资产没有被自动编译.

更多信息:http://devcenter.heroku.com/articles/rails31_heroku_cedar

编辑:

从Rails 3.1开始,我们将使用Assets管道.这意味着您需要将所有资产(图像,javascript,css)放入app/assets.3.1之前会把那些放进去public/**/*.

在开发模式下,Rails 3.1将自动编译(缩小JS和CSS,在某些情况下将图像转换为base64等)所有资产,创建一个小型的版本化软件包.

例如,bundle exec rake assets:precompile在项目中运行.看一下新文件夹public/.你可以安全地删除它.

在生产模式中,这不是自动的.您可以启用资产的自动编译,也可以bundle exec rake assets:precompile在部署之前手动运行.

有关资产管道的更多信息,请访问 http://guides.rubyonrails.org/asset_pipeline.html

有用:https://github.com/dnagir/guard-rails-assets