我有一个使用jQuery Mobile的网站,其中一个页面使用Cloudmade的Leaflet显示地图。
This page loads up and shows a map with a marker,这一切都很好但是......
I have another page with a link to the map page,然后加载OK,除了它似乎试图从错误的地方获取标记图像文件。
有人可以告诉我更多关于该页面出错的信息吗?
这就是我所知道的。 jQuery Mobile会重写普通的A HREF链接来代替执行ajax动态加载目标页面。这对我来说是神秘而深不可测的,但是像我这样的开发人员大多不需要关心它吧?但是在这种情况下,关于传单调用代码的某些内容并没有在修复中幸存下来。
Failed to load resource: the server responded with a status of 404 (Not Found)
http://placr.mobi/dist/images/marker.png
...是safari报告的错误。确实这条道路不正确。我设置了传单,其中'dist'目录的内容放在一个名为'leaflet'的目录中。应该管用?事实上, 除了jQuery更糟糕之外还有。
调查一下,我发现传单源代码中没有提到'dist'(正如我所期望的那样。我应该可以将该目录称为其他东西吗?)但是参考确实编译成uglified javascript('return"../../dist/"
')
也许某人有一个jQuery Mobile和传单一起工作的例子(理想情况下包括标记图像)
答案 0 :(得分:1)
问题是leaflet.js根据html中脚本标签的src属性评估ROOT_URL。但是第一页中缺少脚本标记。
在您的第一页(http://placr.mobi/maplinktest)中输入以上行:
<script src="/leaflet/leaflet.js" type="text/javascript"></script>
正好在:
之下<div data-role="content" >
第二种替代解决方案是在第二页中添加以下内容:
L.Icon = L.Icon.extend({
iconUrl: <markerUrl>,
shadowUrl: <shadowUrl>
});
使用第二种方式明确设置图像URL。
第三种解决方案是在第一页的锚点中添加rel =“external”:
<a href="/map?lat=51.45289&lon=-0.1003&zoom=16" rel="external" class="ui-link">Link to map page</a>