5

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

4

2 回答 2

3

当我意识到我的错误时,我遇到了同样的问题:我做了git commit -am "commit_message",在它之前省略git add .了导致新文件被排除在提交之外。

根据git help commit

-a,--全部

告诉命令自动暂存已修改和删除的文件,但您未告知git的新文件不受影响。

添加未跟踪的文件后,新的提交和git push heroku master它的工作。

于 2013-08-07T03:47:11.297 回答
0

我刚刚遇到这个错误,这是因为部分文件是haml,但我的 Gemfile仅hamldevelopment组中。

我转换为 Slim,我将其用于应用程序的所有其余部分,仅此而已。

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

于 2012-12-05T00:28:01.083 回答