Ruby on rails 未从css文件Heroku和S3引用Rails 4供应商资产映像

Ruby on rails 未从css文件Heroku和S3引用Rails 4供应商资产映像,ruby-on-rails,ruby,heroku,amazon-s3,ruby-on-rails-4,Ruby On Rails,Ruby,Heroku,Amazon S3,Ruby On Rails 4,我在供应商文件夹下有很多供应商图片,这些图片是从供应商css文件中引用的 我正在使用Heroku和S3进行制作,比如背景图像:url(“../images/sprite.png”)正在开发中工作,但不在生产中,因为图像url指向S3URL 它也没有被预编译,所以我不确定是否应该将其作为资产预编译的一部分,但我想远离它,因为我需要手动将所有图像文件复制到assets/images文件夹中,并通过将其更改为scss来更改css文件中的引用,以及asset\u url(似乎工作正常) 有没有一种方法不

我在供应商文件夹下有很多供应商图片,这些图片是从供应商css文件中引用的

我正在使用Heroku和S3进行制作,比如
背景图像:url(“../images/sprite.png”)正在开发中工作,但不在生产中,因为图像url指向S3URL

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

有没有一种方法不只是从供应商css文件中引用S3URL


我还使用
asset\u sync
gem上传到S3

预编译资产

您似乎遇到了一个问题,可以通过
预编译
您的资产来解决:

#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
这将预编译您的所有资产(并且应该正确地同步它们)


资产同步

asset\u sync
gem与Rails&Heroku一起使用后,我们发现您必须在
Heroku
本身上运行
precompile
命令(我上面提到的最后一步)


检查的唯一方法是查看您的Amazon bucket——如果它设置正确,如果您在Heroku上预编译,它应该会填充这些资产。例如,
app/assets/images
文件夹下的任何东西似乎都在工作,但不在
vendor/assets/lib/something/images
中。因此,我想知道是否可以添加它们以进行预编译,而不必手动在
app/assets/images
目录中复制这些图像,为什么不试试这个:
config.assets.precompile+=['your/dir']
。我不确定它是否适用于资产管道之外的项目(
/assets
),但这正是您需要实现这一功能的地方。这里有一个很好的参考:@RichPeck我应该在每次向我的项目添加新资产时都这样做吗?