【发布时间】:2013-07-07 05:00:18
【问题描述】:
环境:heroku
导轨:4
红宝石:2
我们向 heroku 部署了一个应用程序,似乎公共文件夹中的任何内容都无法访问(没有看到静态文件,因此路由器启动,然后抱怨没有路由匹配)。
为了解决这个问题,我们设置
# Rails 4 only flag
config.serve_static_assets = true
在我们的 production.rb 文件中。这真的是处理这个问题的最好方法吗?还是我们未能正确配置应用程序如何正确托管在 heroku 上?
【问题讨论】:
-
让 CDN 供应商来托管/为您提供静态资产是个好主意,或者 AWS S3 可能是另一种选择。 devcenter.heroku.com/articles/s3
-
我会在本地预编译资产并将其上传到 as3 存储桶吗?此外,当它编译资产时,它看起来好像是在末尾放置某种散列值(假设有助于缓存杀戮)。有没有办法处理这个问题,所以我不必手动更新静态引用,因为我真的很喜欢说 stylesheet_link_tag “应用程序”的便利,而现在我想我必须手动设置它以指向适当的 css 文件在桶内?
-
看看这个。 devcenter.heroku.com/articles/cdn-asset-host-rails31 看起来asset_sync 可以帮助您完成上传工作。我想说的是,最好不要(或可能永远不要)让您的 rails 进程为您提供静态内容,因此 rails 默认将
serve_static_assets设置为 false 是有原因的。 -
这是伟大的院长,你能创造一个答案让我接受吗?
-
Dean,我使用了该链接中提出的解决方案,效果很好。
标签: ruby-on-rails heroku ruby-on-rails-4