Ruby on rails 链接到背景图像的正确方式是什么?

Ruby on rails 链接到背景图像的正确方式是什么?,ruby-on-rails,asset-pipeline,turbolinks,Ruby On Rails,Asset Pipeline,Turbolinks,在生产中,我链接到css之外的资产没有问题。但我似乎找不到rails逻辑将指纹应用于我的图像,这导致每个背景图像文件上都出现了404。以下是我尝试过的: background-image: url(image-path('pretty-background-image.jpg')); background: asset-url('pretty-background-image.jpg'); 但这两种方法似乎都不起作用,它们都为: background: url(assets/pretty-ba

在生产中,我链接到css之外的资产没有问题。但我似乎找不到rails逻辑将指纹应用于我的图像,这导致每个背景图像文件上都出现了404。以下是我尝试过的:

background-image: url(image-path('pretty-background-image.jpg'));
background: asset-url('pretty-background-image.jpg');
但这两种方法似乎都不起作用,它们都为:

background: url(assets/pretty-background-image.jpg);
而不是

background: url(assets/pretty-background-image1234567890987654321.jpg);

正确的方法是使用sass和
图像url
帮助器

background-image: image-url("path/to/file.jpg")
假设您的文件位于/app/assets/images/path/to/file.jpg中

更多信息:


编辑因为它不适用于您的案例,只需执行以下验证

在开发机器中,从应用程序目录运行
RAILS\u ENV=production bundle exec rake assets:precompile

然后进入公共目录,搜索你的图像文件,并验证它是否有指纹

仍然在公共目录中,打开已编译的css文件并搜索css选择器,以验证
图像url
是否已替换为
url
,并且文件路径已按指纹识别


告诉我结果,我们将看到

似乎仍然没有添加指纹。这是我需要手动添加到文件名中的内容吗?它正在自动工作。1.它在dev环境中工作吗?2.您是否在部署期间编译资产?还要确保productionYes中的
config.assets.digest
true
,这是在生产服务器上和本地运行
rails server-e生产时发生的。我不确定configuration.assets.digest(我不在家里的电脑上),但SCS中未使用的所有资产(例如图像标签)都有指纹。太棒了。下班后我会看看这个。非常感谢。