Rails 4供应商资产图像未从css文件Heroku和S3引用

Pas*_*per 6 ruby ruby-on-rails heroku amazon-s3 ruby-on-rails-4

我在供应商css文件中引用的Vendor文件夹下有很多供应商图像.

我正在使用Heroku和S3进行制作,并且background-image: url("../images/sprite.png");正在开发但不在生产中,因为图像URL指向S3 url.

它没有被预编译,所以不确定我是否应该将此作为资产预编译的一部分,但我想远离这一点,因为我需要手动将所有图像文件复制到assets/images文件夹,并通过以下方式更改css文件中的引用改变它scss也是asset_url(似乎工作正常)

有没有办法不从供应商css文件中引用S3 url

我也使用asset_syncgem上传到S3

Ric*_*eck 8

预编译资产

似乎您遇到了资产指纹问题,这是一个可以通过precompiling您的资产解决的问题:

关于这个主题的Heroku教程:

#config/environments/production.rb
config.assets.compile = true
config.assets.digest = true

#cmd
rake assets:precompile RAILS_ENV=production
git add. 
git commit -a -m "Your Commit"
git push heroku master
heroku run rake assets:precompile --app your_heroku_app
Run Code Online (Sandbox Code Playgroud)

这将预编译您的所有资产(并应正确同步)


资产同步

使用asset_syncRails和Heroku 的gem之后,我们发现你必须自己运行precompile命令Heroku(我上面几点的最后一步)

检查的唯一方法是查看您的亚马逊存储桶 - 如果设置正确,如果您在Heroku上预编译,它应该填充资产