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

时间:2014-01-26 04:22:31

标签: ruby-on-rails ruby heroku amazon-s3 ruby-on-rails-4

我在供应商css文件引用的Vendor文件夹下有很多供应商图片。

我正在使用Heroku和S3进行制作,像background-image: url("../images/sprite.png");这样的东西正在开发但不在制作中,因为图片网址指向S3网址。

它没有被预编译,所以不确定我是否应该将其作为资产预编译的一部分包含在内但我想远离这一点,因为我需要手动将所有图像文件复制到assets/images文件夹中还可以更改css文件中的引用,方法是将其更改为scss以及asset_url(这似乎工作正常)

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

我也使用asset_sync gem上传到S3

1 个答案:

答案 0 :(得分:8)

预编译资产

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

<强> Heroku Tutorial on the subject

#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

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


资产同步

在Rails&amp;中使用asset_sync宝石Heroku,我们发现你必须在precompile本身运行Heroku命令(我上面几点的最后一步)

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