我有几个静态页面,当它们在本地运行时作为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开了一张支持票,正在等待回应。