所以我正在学习Rails并完成Michael Hartl的教程。
当我部署到Heroku时,我得到了臭名昭着的“我们很抱歉,但出了点问题。”
该应用程序在本地开发服务器上运行良好。
Heroku日志说:
2012-06-27T15:31:47+00:00 app[web.1]: Completed 500 Internal Server Error in 112ms
2012-06-27T15:31:47+00:00 app[web.1]:
2012-06-27T15:31:47+00:00 app[web.1]: * "/app/app/views"
2012-06-27T15:31:47+00:00 app[web.1]: ActionView::Template::Error (Missing partial layouts/header with {:locale=>[:en], :formats=>[:html], :handlers=>[:erb, :builder]}. Searched in:
2012-06-27T15:31:47+00:00 app[web.1]: ):
2012-06-27T15:31:47+00:00 app[web.1]: 11: </head>
2012-06-27T15:31:47+00:00 app[web.1]: 12: <body>
2012-06-27T15:31:47+00:00 app[web.1]: 13:
2012-06-27T15:31:47+00:00 app[web.1]: 14: <%= render 'layouts/header' %>
2012-06-27T15:31:47+00:00 app[web.1]: 15:
2012-06-27T15:31:47+00:00 app[web.1]: 16: <div class="container">
2012-06-27T15:31:47+00:00 app[web.1]: app/views/layouts/application.html.erb:14:in `_app_views_layouts_application_html_erb__112987114114249875_31386580'
2012-06-27T15:31:47+00:00 app[web.1]: 17: <% flash.each do |key, value| %>
如果我正确地阅读此内容,它会在/app/app/views
中查找标题部分。这是错误的 - 它应该在/app/views
。
在我的开发计算机上,文件_header.html.erb
位于app/views/layouts
。
那么为什么Heroku会添加额外的app
目录?
答案 0 :(得分:2)
当我意识到自己的错误时,我遇到了同样的问题:我做了'git commit -am "commit_message"
',在它之前省略了'git add .
',导致新文件退出提交。
根据'git help commit
':
-a, - all 告诉命令自动暂存已修改和删除的文件,但是没有告知git的新文件不会受到影响。
添加未跟踪的文件后,新的提交和'git push heroku master'就可以了。
答案 1 :(得分:0)
我刚刚遇到此错误,因为部分文件是haml
,但我的Gemfile只有haml
组中的development
。
我转换为Slim,我用于应用程序的其余部分,就是这样。
基本上,服务器无法找到该文件,因为它有一个不受支持的扩展(在开发环境中以某种方式可用)。