PhoneGap相对URL

时间:2010-11-26 19:57:15

标签: jqtouch cordova

我使用jQTouch构建了一个移动网站,现在我一直在努力让同一个网站使用PhoneGap。对于PhoneGap,我已将大部分资产(页面,图像,JS,CSS等)移动到www目录中,但我仍需要通过Ajax加载一些动态内容。在移动网站上,我使用相对网址来加载其他内容。但是,使用PhoneGap,我还没有找到使用相对URL访问我的移动网站的方法,并且被迫使用绝对URL。我的问题是这样的:有没有办法在PhoneGap中使用相对URL?可能就像在PhoneGap初始化期间设置基本URL一样?

3 个答案:

答案 0 :(得分:4)

使用PhoneGap时,主要文件将在手机上,因此相对文件将相对于手机上的位置。

如果您需要访问远程服务器(您的移动网站)上的文件,则必须绝对指定该文件。

如果您的PhoneGap应用中的主HTML页面位于file://www/index.html,并且您尝试访问相关文件(例如“logo.png”),那么请指定<img src="logo.png" />您真正从中获取它file://www/logo.png

如果你真的想要实际在远程网站上的logo.png版本,你必须提供完整的(绝对)路径,否则浏览器无法知道当你指定“logo.png”时是指“http://www.your-site.com/logo.png”中的那个。

答案 1 :(得分:3)

您可以尝试using the <base> tag。这会将您的基本URL设置为您需要的任何内容:

<base href="http://yourdomain.com/">
<script src="js/remotescript.js"></script>

请注意,这意味着您的本地脚本需要采用绝对形式:

<script src="http://localhost/js/phonegap.js"></script>

有关此说明,请参阅this other question for more info。那个人建议在本地相对URL 之前加上 dot .),尽管我没有测试这个

<script src="./js/phonegap.js"></script>

答案 2 :(得分:0)

我知道这是6/7岁,但是对于任何其他来此问题相同的人... 这是一个解决方案,因为没有其他“打包”的解决方案:

3个快速步骤:

1)将您的站点域存储在全局javascript变量中

var currentloc = 'https://example.com'

2)使用临时变量将相对路径添加到currentloc

var relpath = '/need/jsonex'
var ajaxcall = currentloc + relpath
$.ajax({...

3)如果您确实更改了要从站点调用相对路径的所谓“位置”,请调整currentloc

currentloc = currentloc + '/new/path'

**请记住,如果将currentloc设置为全局变量,则需要跟踪这些更改。

希望这会有所帮助。