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.pngHTML ファイルからの相対パスです。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 に答える