无法在Rails应用中使用HTML链接到图像

时间:2019-04-10 18:06:26

标签: html ruby-on-rails ruby image

我正在使用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上的文件就很好了。 我是编码新手。 干杯!

5 个答案:

答案 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)

对于image_tag助手,您的语法似乎不正确。试试这个:

<%= image_tag "image1.png" %>

More info in the Rails docs

答案 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”和“ /”。