我知道这个问题很多,但我在这里失去了理智。我开始使用Rails 5构建应用程序。我部署到AWS EB并将env设置为开发。但我的资产没有加载。获得404.我在application.rb文件中实现了sprockets和require 'rails/all'
以及运行rake assets:precompile
。我还尝试了development.rb中的所有config.asset
配置:
config.assets_compile
config.public_file_server.enabled
config.assets.digest
config.assets.enabled
对于我的每个资产,我的nginx错误日志都包含以下内容。路径错了。我没有将资产放在/var/app/current/public
中,我将它们放在/var/app/current/app/assets
中。在某些时候,我从那里取了它(不记得怎么样),但它仍然无效:
2017/07/28 01:16:15 [error] 2994#0: *1387 open() "/var/app/current/public/assets/merck-logo.png" failed (2: No such file or directory), client: 76.218.103.88, server: _, request: "GET /assets/merck-logo.png HTTP/1.1", host: "merckcoupons-dev1.dv3ww3wmii.us-west-1.elasticbeanstalk.com", referrer: "http://merckcoupons-dev1.dv3ww3wmii.us-west-1.elasticbeanstalk.com/circular"
疯狂的是,我在不久前用另一个应用程序做了这个,并将其作为指南打开。我一直在谷歌搜索几个小时,我无法弄清楚。任何帮助将不胜感激!
答案 0 :(得分:3)
使用image_tag
帮助程序引用图像时,只包含文件名而不包含路径。 Rails将在开发环境中使用app/assets/images
中的文件,然后在其他环境中使用public/assets/IMAGE_NAME_FINGER_PRINT.ext
(在预编译之后)
请参阅:http://guides.rubyonrails.org/asset_pipeline.html#coding-links-to-assets
例如:
好的:<%= image_tag 'rails.png' %>
坏:<%= image_tag '/assets/rails.png' %>