11

私はこの答えを探して探してきました。しかし、私はこれを機能させることができないようです。数時間です。どうか助けてください。

Rails アプリの Web ページです。assets フォルダーに保存されている画像を表示しようとしています。 @app/assets/images/rails.png.

HTMLを構築する次の関数を含むjavascriptファイルがあります。この関数内で、画像へのリンクを渡したいと思います。これは私が現在持っているコードです。

function addToInfoWindow(infoWindowContent)
{

infoWindowString = '<div class="infoWindow">'+
**'<img src="/assets/images/rails.png" />'+**
'<p>'+infoWindowContent+'</p>'+
'<p><a href="http://www.google.com">See here</a></p>'+
'<p><a href="http://www.google.com">Upload a photo</a></p>'+
'</div>';
infoWindow.setContent(infoWindowString);

}

上記のコードでわかるように、太字の部分が問題です。その画像ファイルにアクセスするために URL 文字列のいくつかの異なる組み合わせを試しましたが、画像が html 要素に表示されません。

私は見て、見て、次のようなRailsヘルパー関数を試しましたimage_url('rails.png')。しかし、私はそれらを間違った場所に置いているに違いありません。誰か助けてください。上記のコードのどこに、どの関数を追加して画像を取得する必要があるかを示してください。/assets/images/rails.pngこれにより、その URL が上の強調表示された部分に配置され、ビューに表示されます。

4

2 に答える 2

26

Railsヘルパーを使用する場合は、JavaScriptファイルをerbに「アップグレード」する必要があります。

whatever.js名前をからに変更するだけwhatever.js.erbです。これで、railsはファイルを配信する前にすべてのerbコード(<%=と%>の間のもの)を実行します。

だからあなたはこのようにすることができます:

<img src="<%= asset_path( 'rails.png' ) %>" />

詳細については、2.2.3を参照してください。

于 2012-04-21T22:36:45.557 に答える
3

純粋なjavascriptでimage_tagのようなレールヘルパーを使用することはできません-.erbを追加してasset_pathを使用します(klumpの回答を参照)

于 2012-04-21T22:23:22.237 に答える