2012-01-18 166 views
3

我的情况如下: 我有一个index.html和一些从服务器加载HTML代码片段的JavaScript。这些片段里面,我有一些网址相似图片 /some/folder/picture.jpgPhoneGap中的绝对路径

当然这些都不在PhoneGap的工作。 Weinre告诉我,PhoneGap正试图从 file:///some/folder/picture.jpg

的图片任何想法如何解决这个问题?我在想是这样一个基本href,或在PhoneGap的一些配置,其中一个可以指定一个根路径,但我没有发现这样的事情......

感谢, 迈克尔

+0

装载设备上的这些图像或者是他们在服务器上? – 2012-01-18 14:55:26

+0

您必须在服务器上使用绝对URL('http:// www.myserver.com/some/folder/picture.jpg')。 – lexicore 2012-01-19 08:10:01

+0

@Simon在网站上,我想从服务器加载图像。在手机上,我想在本地加载图像。 – 2012-01-19 14:30:32

回答

0

你不能请使用<base>来执行此操作,因为/始终是主机相对的 - 无法将其重新定义在子目录中。你有两个选择:

  • 重写你的HTML中使用完全相对路径像../../some/folder/picture.jpg(或有东西给你做重写作为构建步骤),或

  • 改变“浏览器”(的PhoneGap的包装),以便以不同的方式加载URL。

我不熟悉的PhoneGap,所以我不能自动选择发表评论,但我个人会开始使用相对URL。

+0

感谢您的回答。在此期间,我实施了以下解决方案: - 使用以及相对于网站上的图像URL - 在CSS等中为PhoneGap重写所有(绝对)图像路径 – 2012-02-27 16:27:19

4

我有同样的问题,特别是当你有很多的意见(页),并希望从菜单中加载一个,但你是在一个未知的位置。

简单的解决方法是使用window.location对象。

window.location.href.split('www')[0] + 'www' 

这给了你的'基'的绝对URL。 www是与IOS和Android相关的文件夹,因此这也使您的应用程序在多个平台上兼容。

从这里你可以使用正则表达式来传递整个文档,就像jquery mobile用data- *属性来描述它们的元素一样。您只需将正则表达式替换为返回的路径即可。你会想在初始化期间这样做,否则它会创造一个巨大的瓶颈。

希望这会有所帮助,并符合您所寻找的内容。

干杯,

Sententia