0

我使用以下代码更改了 html“格式化程序”以嵌入我的图像:

@builder.div(:id => 'image') do
   @builder << '<div style="float:center";><img SRC="/home/abc/cert-image.png" ALT="Image"> </div>'
 end

HTML 文件具有以下标记,但 HTML 页面内没有编码图像。

div id="image"><div style="float:center";><img SRC="/home/abc/cert-image.png" ALT="Image">

现在,如果我在浏览器(Chrome)中打开它,它不会显示图像。如果我在本地笔记本电脑上更改上面的路径并指向图像,它就可以工作(即正确显示)。

我错过了什么?

4

1 回答 1

1

/home/abc/cert-image.png是 HTML 文件的相对路径。html 或格式化程序没有任何问题,但您的路径可能是错误的。

尝试单击图像应该在的位置并在新窗口中打开图像的 URL。这将为您提供 img 标签指向的绝对 URL,您可以从那里修复/调试。

编辑

忽略这一点,我在您的格式化程序中发现了错误:

@builder.div(:id => 'image') do
  @builder << '<div style="float:center;"><img SRC="/home/abc/cert-image.png" ALT="Image" /> </div>'
end

编辑 2

由于您只想使用数据 uri 对图像进行 base64 编码,因此可以执行以下操作:

require 'base64'

file = File.open("/home/abc/cert-image.png", "rb").read
b64 = Base64.encode64(file)

然后在您的格式化程序中:

@builder.div(:id => 'image') do
  @builder << '<div style="float:center;"><img SRC="data:image/png;base64,' + b64 + '" ALT="Image" /> </div>'
end
于 2013-03-28T21:47:43.337 回答