在 Heroku 上运行 Rails 应用程序,在 /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 'rails_12factor', group: :production

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

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

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

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

最新更新