13

我有几个静态页面,在本地运行时作为 localhost:3000/foo.html 工作,但是一旦上传到 heroku,这将不起作用。

我尝试将以下内容添加到 routes.rb 文件中:

match '/foo', :to => redirect('/public/foo.html')

但这似乎不起作用,它将我重定向到 foobar.com/public/foo.html,但在那里仍然找不到任何东西。

4

3 回答 3

42

根据本文,您需要告诉 Rails 自己提供静态资产:

config.serve_static_assets = true

在你的config/environments/production.rb

于 2012-07-11T19:56:13.683 回答
1

或者,您可以将rails_12factorgem 添加到生产组:

gem 'rails_12factor', group: :production

根据Heroku的说法。这也将stdout按照 Heroku 的要求将日志重定向到。

于 2015-12-21T06:44:53.827 回答
0

这让我困惑了几个小时,但这是另一个潜在的解决方案。出于某种原因,我可以将文档生成到/public/docs中,但是即使在我生成文档之后,文档也不会加载。我会运行 Heroku bash 控制台,生成文档,退出,然后重新运行 Heroku bash,结果发现它/public不再包含我的docs文件夹。

因此,我找到的唯一解决方案是将文档包含在 Git 存储库中。这是 Heroku/public/docs在部署和 bash 实例中持续存在的唯一方式。

我不知道这是为什么...我向 Heroku 开了一张支持票,正在等待回复。

于 2017-05-30T17:19:04.477 回答