环境:heroku
导轨:4
红宝石:2
我们向heroku 部署了一个应用程序,似乎公共文件夹中的任何内容都无法访问(没有看到静态文件,因此路由器启动,然后抱怨没有路由匹配)。
为了解决这个问题,我们设置
# Rails 4 only flag
config.serve_static_assets = true
在我们的 production.rb 文件中。这真的是处理这个问题的最好方法吗?或者我们是否未能正确配置应用程序如何正确托管在 heroku 上?
环境:heroku
导轨:4
红宝石:2
我们向heroku 部署了一个应用程序,似乎公共文件夹中的任何内容都无法访问(没有看到静态文件,因此路由器启动,然后抱怨没有路由匹配)。
为了解决这个问题,我们设置
# Rails 4 only flag
config.serve_static_assets = true
在我们的 production.rb 文件中。这真的是处理这个问题的最好方法吗?或者我们是否未能正确配置应用程序如何正确托管在 heroku 上?
这在 Rails 4.2 中已被弃用,现在它是一个别名,计划在 Rails 5.0 中删除
config.serve_static_assets = true
应改为:
config.serve_static_files = true
在以前的 Rails 版本中,Heroku 注入了一个启用静态资产服务的插件,因此不存在此问题。由于这个插件系统在 Rails 4 中被删除,他们现在创建了一个 gem 来做同样的事情。您可以通过以下方式在 Gemfile 中启用它:
gem 'rails_12factor', group: :production
当然,您也可以将 CDN 用于您的资产,但不是必须的。
正如 Dean Winchester 所说,为静态资产使用 CDN 是个好主意。事实上,当只使用 Heroku 时,您的 Rails 应用程序必须负责为静态资产提供服务,因为 Heroku Cedar 架构不会为您做到这一点。
config.serve_static_assets = true
如果您不想配置 CDN 并且只使用 Heroku,那么设置是要走的路。
导轨有误。尝试...
config.assets.serve_static_files = true