为什么我的图像会在其名称后附加数字?

时间:2014-11-25 13:52:18

标签: html ruby-on-rails image haml

我的图片位于assets/images/logo.png,我可以使用Ruby / HAML的图片代码。但是,在创建HTML页面时,<img src='/assets/logo.png'>无法找到图像。当我转到HAML创建的页面并使用Inspect Element时,我发现该图像实际上位于/assets/logo-<a bunch of numbers>.png下,如果我将其用于我的HTML页面,它可以正常工作。但是,这个数字在开发和生产中是不同的。这个数字是多少?我应该在其他HTML页面中将其用作图像源?

2 个答案:

答案 0 :(得分:1)

这被称为rails中资产的指纹。请阅读指南:http://guides.rubyonrails.org/asset_pipeline.html#what-is-fingerprinting-and-why-should-i-care-questionmark

这用于防止缓存问题:当您更新资产但保留旧名称时,浏览器仍可能显示旧的缓存图像。但是使用指纹,名称将会不同,新图像将始终传递。

您应始终使用 haml / erb 资产助手_asset_path&#39; logo.png&#39; _语法引用代码中的资产,因此rails会关注该指纹。

答案 1 :(得分:1)

要解决您的问题,在ERB中,您可以使用函数asset_path生成资产的真实路径。

<img src="<%= asset_path 'logo.png' %>" />