我按照本指南(http://www.randomerrata.com/articles/2013/middleman-on-heroku/)设置了一个Middleman网站,用于部署到Heroku。当我在浏览器中加载网站时,虽然出现错误:
Rack app error: #<Errno::ENOENT: No such file or directory - 404.html>
似乎所有内容都设置正确,我提供了我的源目录结构和config.ru的屏幕截图。问题是什么?
答案 0 :(得分:1)
看起来构建从未构建,导致没有index.html文件加载,随后404无法加载。
查看bundle exec middleman build
它似乎包含在说话标记''
而不是严重的重音``
中 - 不确定技术差异,但似乎更改第8行包含`建立正确。
答案 1 :(得分:0)
尝试指定绝对路径:
page_404_file = File.expand_path('../build/404/index.html', __FILE__)
File.open(page_404_file, File::RDONLY)
答案 2 :(得分:0)
嗯......我是那篇博文的作者,看起来这里发生了一些奇怪的事情。出于某种原因,Rack试图打开404.html
,尽管第27行明显试图打开build/404/index.html
。
我讨厌问这个问题,但是一切都已保存并致力于Heroku,对吗?
您也可以尝试在Heroku上打开一个bash控制台,看看那里发生了什么(只需在终端提示符中执行heroku run bash
)。
编辑:哦, Alexander R Lunnon 下面注意到middleman build
行包含在单引号(')中,而不是反引号(`)。这可能是主要问题。