我正在使用Ruby on Rails开发Web应用程序。我有一个要添加到站点的图像,我尝试使用“ img src” HTML标记调用本地图像,但是它不起作用。如果我使用ruby使用“ image-tag”方法来调用它,它会很好地工作。我只是想知道为什么它不能与HTML一起使用。
例如,我将图像添加到app> assets> images> image1.png
在View文件上,我如下添加HMTL:
<img src="/app/assets/images/image1.png">
它没有加载
但是,如果我在同一位置输入此代码:
<%= image-tag: "image1.png" %>
它工作正常。
有人知道为什么会这样吗?我知道我有一种解决方法,但是我更想知道为什么我的HTML标签存在本地文件问题,而链接到Internet上的文件就很好了。 我是编码新手。 干杯!
答案 0 :(得分:2)
好问题。 Rails资产编译器很重要,但是会遇到类似这样的问题。
资产编译器可能会在文件名中添加缓存指纹。您可以将<%=asset_path('images/image1.png')%>
用作src
属性的值,或者继续使用image_tag
。
有关更多信息,请参见the Rails guide assets document。
有帮助吗?
答案 1 :(得分:0)
您可以尝试基于在线的示例吗?我的猜测是ruby在目录中找不到您的图片。
<img src ="https://upload.wikimedia.org/wikipedia/commons/thumb/3/32/Googleplex_HQ_%28cropped%29.jpg/250px-Googleplex_HQ_%28cropped%29.jpg"> </img>
答案 2 :(得分:0)
答案 3 :(得分:0)
问题是您使用的路径。这是简短的版本:从图像网址中删除app/
,它应该可以正常工作。
如果使用有效代码运行该应用程序,则可以通过检查HTML来了解image_tag
在幕后已经为您完成的工作。您应该会看到类似这样的内容:
<img src="/assets/images/image1.png">
更新您的img
标签以使用该路径应该可以解决问题。
但是,如果可能,您应该使用image_tag
!在不深入研究技术细节的情况下,如果您将网站部署到image_tag
版本的生产环境并查看HTML,则可能会看到类似以下内容的内容:
<img src="/assets/images/image1-[sequence of characters].png">
这将有助于确保客户端在必要时从其缓存中删除过时的资产-可以在here中找到技术详细信息(请参阅第1.2节)。如果您对图像进行硬编码,则会错过资产管道提供的任何功能。
答案 4 :(得分:0)
如果要使用 img 标签,您应该:
<img src="<%= asset_path('image1.png') %>"/>
没有“ / images”和“ /”。