在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开了一张支持票,正在等待回应。