我有一个rails 4应用程序,我在其中使用gmapjs来显示带有标记的地图。通过在mouseover事件上创建ajax来检索每个标记的详细数据。我使用infoWindow来显示细节。我必须在每个infoWindow中显示应用程序徽标。
infowindow代码如下:
a.infoWindow.setContent('<div id="hover'+item.id+'" tabindex="-1" role="dialog">'+
'<img src="'+logo_path+'" class="Image">' +
'<div class="cmp_name">' +
data.name +
'</div>' +
'<div class="col-sm-4">' +
'<img src="'+window.location.href+'/assets/logo_sm.png" class="pull-right">'
'</div>' +
'</div>'
);
这里logo_path是&#34; window.location.href + data.logo.url&#34;。我必须显示名为&#39; logo_sm.png&#39;的图像。它在开发中工作但在生产中失败,因为在资产预编译期间,它已重命名。
在javascript中引用要预编译的图像的理想方法是什么?
答案 0 :(得分:0)
假设您在资产中创建了javascript(例如在maps.js中)
您应该能够使用erb,即maps.js.erb
,然后使用image_url
||构建字符串image_path
例如。
a.infoWindow.setContent('<div id="hover'+item.id+'" tabindex="-1" role="dialog">'+
'<img src="'+logo_path+'" class="Image">' +
'<div class="cmp_name">' +
data.name +
'</div>' +
'<div class="col-sm-4">' +
'<img src="<%= image_url('logo_sm.png')%>" class="pull-right">'
'</div>' +
'</div>'
);