我在Elastic Beanstalk的生产中遇到了我的Rails应用程序的问题。 本地的一切都很好,但是当我部署时,我的所有照片都找不到(404)。我将所有图像放在app / assets / images中。
我尝试更改config / environments / production.rb中的config.serve_static_files,但是true或false都不起作用。
我正在使用带有Passenger的ruby堆栈。单个实例。
平台:运行Ruby 2.2(乘客独立)的64位Amazon Linux 2015.03 v2.0.0
感谢您的帮助!
朱利安答案 0 :(得分:1)
前几天,我遇到了几乎相同的问题。我在CSS中引用了.jpg文件作为背景图片,但它却给了我404。
background-image: url('background2.jpg'); //worked locally but not on AWS EB
在开发人员终端中检查代码时,我注意到实际上是在请求“ /assets/background2.jpg”,但我认为,当Rails在资产文件夹中提供图片时,通常会在文件后用长字符串重命名它们名称(例如“ / assets / background2-b438af190a4 ......... jpg”)
就我而言,使用asset_path有所帮助。注意:由于我在CSS中使用了它,因此我不得不将文件扩展名更改为scss。
background-image: url(asset_path("background2.jpg")); // .scss file