Heroku模板错误 - 在错误的目录中查找部分

时间:2012-06-27 15:53:30

标签: ruby-on-rails ruby-on-rails-3 heroku

所以我正在学习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目录?

2 个答案:

答案 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,我用于应用程序的其余部分,就是这样。

基本上,服务器无法找到该文件,因为它有一个不受支持的扩展(在开发环境中以某种方式可用)。