11

我一直在寻找和寻找这个答案。但我似乎无法完成这项工作,现在几个小时。请帮帮我。

我是我的 rails 应用程序的网页,我正在尝试显示保存在我的资产文件夹中的图像 @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.jswhatever.js.erb。现在,rails 将在交付文件之前执行所有 erb 代码(<%= 和 %> 之间的内容)。

所以你可以这样做:

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

更多信息,请参见 2.2.3。

于 2012-04-21T22:36:45.557 回答
3

您将无法在纯 javascript 中使用诸如 image_tag 之类的 rails 助手 - 附加 .erb 并使用asset_path(请参阅 klump 的回答)

于 2012-04-21T22:23:22.237 回答