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