我正在使用AWS Opswork来部署我的rails应用程序
我正在使用独角兽+ Nginx并且我坚持这个错误,因为2天,我的应用程序工作正常,我得到我的CSS和javascript工作后做rake资产:预编译但我无法看到任何图像或fa我的应用程序中的图标
我的所有图片都存储在app / assets / images
中并在html视图中我使用它<img src="/assets/image.jpg">
我的图片在开发中完美加载,但在生产中没有加载
答案 0 :(得分:7)
我有这个问题。我不得不重新编译我的资产。
rake assets:clobber
rake assets:precompile
希望这有帮助
答案 1 :(得分:4)
确保您的production.rb
设置包括:
# Disable Rails's static asset server (Apache or nginx will already do this)
config.serve_static_assets = false
# Don't fallback to assets pipeline if a precompiled asset is missed
config.assets.compile = false
# Generate digests for assets URLs
config.assets.digest = true
这是使用SCSS预编译资产的方法:
#application.css.scss (yes, you need to rename it)
@import 'layout/body'
#app/assets/stylesheets/layout/body.css.scss
body {
background: asset_url('image.jpg')
}
执行上述操作时,请确保预编译如下:
RAILS_ENV=production rake assets:precompile
答案 2 :(得分:0)
只需以rails方式编写图像标记,而不是像html那样:
image_tag("icon.png")
# => <img alt="Icon" src="/assets/icon.png" />
image_tag("icon.png", size: "16x10", alt: "Edit Entry")
# => <img src="/assets/icon.png" width="16" height="10" alt="Edit Entry" />
rake assets:precompile
将资源生成到应用程序的公用文件夹中,并从public / assets文件夹中获取(预编译的图像,css,js)。