0

嗨,我的一个 javascript 文件中有以下 html。

function addToInfoWindow(infoWindowContent)  
{  
    infoWindowString = '<div id="infoWindowString">'+  
    '<img src="assets/images/rails.png">'+  
    '<h2>You Clicked:</h2>'+  
    '<p>'+infoWindowContent+'</p>'+  
    '<p><a href="http://www.google.com">See more info</a></p>'+  
    '<p><a href="http://www.cnn.com">see news</a></p>'+  
    '</div>';  
    infoWindow.setContent(infoWindowString);  
} 

问题是我无法让图像显示在信息窗口中。

我意识到这可能是因为 rails 具有某种辅助功能来在其网页中显示图像。但我一直无法找到如何调用它或它是什么。有人可以帮忙吗。

编辑-在以下回复后更改为以下内容:

function addToInfoWindow(infoWindowContent)  
{  
    infoWindowString = '<div class="infoWindowString">'+  
    '<img src="/Users/AM/Documents/RailsWS/cmdLineWS/Businesses/app/assets/images/rails.png">'+  
    '<h2>You Clicked:</h2>'+  
    '<p>'+infoWindowContent+'</p>'+  
    '<p><a href="http://www.google.ca">See Menus</a></p>'+  
    '<p><a href="http://www.google.ca">Upload a Menu</a></p>'+  
    '</div>';  
    infoWindow.setContent(infoWindowString);  
}

但是图像仍然没有出现:(

4

2 回答 2

1

您正在使用图片的相对 URL ( assets/images/rails.png),因此浏览器将尝试从相对于当前页面的地址加载它。例如,如果图像位于

http://example.com/assets/images/rails.png

但你目前在

http://example.com/something/somepage.html

浏览器将尝试从

http://example.com/something/assets/images/rails.png

它会失败。

您应该使用绝对 URL。

于 2012-04-20T23:14:26.470 回答
1

如果您使用带有 rails 资产打包的默认设置,它会在资产文件名上附加一个时间戳,这意味着仅仅浏览/assets/images/foo.jpg并不一定会给您想要的东西。

获取图像标签的 rails 助手只是image_tag 'example.jpg'. 或者,如果您只想要 url image_url 'foo.jpg',.

对于您想要存储的任何给定图像,您可以将其附加到数据属性,例如在您可以执行的视图中:

<a id="image_link" href="#" data-image-url="<%= image_url 'foo.jpg' %>">Click to see image</a>

您可以使用 jQuery 在任何地方获取该路径

var imageUrl = $('a#image_link').data('image-url')
于 2012-04-20T23:34:38.790 回答