我已预先编译了生产中的资产,但应用程序无法加载资产。我的应用程序部署在AWS EC2上
我在public / assets文件夹中检查了application.css是否存在。 但它仍然说404错误。
我的production.rb配置是
答案 0 :(得分:0)
404基于配置中的该行:config.serve_static_files = true
。这可能是错误的名称,具体取决于您的rails版本。我相信该设置在版本5之前的Rails中被命名为config.serve_static_assets
。
如果您没有服务器(nginx / etc),那么您希望该设置为true。否则,您需要将服务器重新配置为指向/ public目录,并确保rake assets:precompile
成功运行。
答案 1 :(得分:0)
我遇到了同样的问题
设置config.assets.compile = True
它对我有用。
答案 2 :(得分:0)
问题是我在根路径的nginx中的配置是错误的。所以资产并没有指向错误的道路。
我改变了nginx.conf:
来自root /home/deploy/appname/public
的
到root /home/deploy/appname/current/public
AND在production.rb
config.serve_static_assets = true
至config.serve_static_assets = false
答案 3 :(得分:0)
我和你一样:
root /home/deploy/appname/public root => /home/deploy/appname/current/public
这对我有用。由于我离开 config / production.rb 文件的独特区别如下:
config.public_file_server.enabled = true
config.assets.compile = true
我使用Rails 5。