Rails Google maps javascript api v3 setIcon() url 無法定位圖片
Rails Google maps javascript api v3 setIcon() url can't locate image
我正在使用setIcon()方法在页面上的元素上鼠标悬停时更改标记图像。当网址如下所示时,它可以正常工作:
marker.setIcon('https://www.google.com/mapfiles/marker_green.png');
但是当我尝试让它在我的本地应用程序目录中查找图像时,它找不到图像(原始标记图像消失但新图像没有出现):
marker.setIcon('images/myMarker.png');
我已经尝试了所有可能的网址(app/assets/images/myMarker.png,/images/myMarker.png,assets/images/myMarker.png等),并将图像放置在许多不同的位置,它仍然不起作用。
如何让 JavaScript 找到我的 png?
假设这是一个资产管道错误,即marker_green.png
在生产中变得类似marker_green-336339d13ed7edf253018e0f7f70bee2.png
。以下是几个解决方案:
- 将marker_green.png文件放在公共目录中,例如 public/mapfiles/marker_green.png
或
- 在 html 元素上为图像路径设置一个数据属性,例如加载地图的div 并使用 JS/jQuery 获取。 即:
.HTML:
<div id="map" data-marker-url="<%= asset_url('marker_green.png') %>"></div>
.JS:
var markerIcon = $("#map").data('marker-url');
marker.setIcon(markerIcon);
听起来这是 rails 资产管道的问题。 您可以尝试以下几个选项:
1)忘记资产管线(不理想),并将标记移动到公共/图像。marker.setIcon('images/myMarker.png');然后应该工作。
2)将.erb扩展名添加到您的文件中,并在引用图像时使用asset_url获取正确的资产路径:marker.setIcon("<%= asset_url('marker_green.png') %>");
最好通读资产管道文档,以确定哪些内容适用于您的配置。
相关文章:
- 如何使用url加载程序在webpack中导入多个图像
- 使用php或javascript从facebook相册URL中删除多余的部分
- CSS-如何定位内容数据标题
- Angular JS IE9 Hashbang url rewriting
- JavaScript下拉菜单-点击按钮并根据所选值重定向到url
- 直接下载文件,而不是从window.open(url)
- Jquery菜单操作不稳定,定位不正确,存在一般错误
- 动态地改变“”的URL;添加新项目”;链接使用javascript/jquery
- 通过js在新选项卡中有条件地打开url
- 在Jquery detachment()和appendTo()之后定位元素
- 困在逻辑中试图定位动态的东西
- 当站点不是其URL的根时,如何在getJSON调用中定位API
- 如何从URL定位JQuery panel Switcher的特定面板
- 正在从URL中删除定位标记
- 定位用于在HTML中动态填充内容的URL
- 如何使用定位服务打开url
- 当使用jQuery定位和PHP获取URL时,图像并不总是加载
- 向页面的当前URL添加一个参数,该参数在另一个Javascript函数中解析,以在页面上定位
- 发送窗口.定位到一个变量,该变量是字符串形式的URL
- 谷歌浏览器:URL无法定位