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