在heroku上运行rails app,无法在/ public文件夹中看到静态页面

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

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

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

但这似乎不起作用,它将我重定向到foobar.com/public/foo.html,但仍然没有发现任何东西。

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

 config.serve_static_assets = true 

config/environments/production.rb

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

 gem 'rails_12factor', group: :production 

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

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

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

我不知道为什么会这样……我用Heroku开了一张支持票,正在等待回应。