PhoneGap 相对 URL

发布于 2024-10-05 00:54:52 字数 287 浏览 1 评论 0原文

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

I've build a mobile site using jQTouch, and now I've been working to get that same site working with PhoneGap. For PhoneGap, I've moved most all of the assets (pages, images, JS, CSS, etc.) into the www directory, but I still need to load some dynamic content via Ajax. From the mobile site, I'm using relative URLs to load additional content. However, with PhoneGap, I haven't found a way to use relative URLs to access my mobile site and have been forced to use absolute URLs. My question is this: Is there a way to use relative URLs with PhoneGap? Maybe something like setting a base URL during the PhoneGap initialization?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

云醉月微眠 2024-10-12 00:54:52

使用 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”。

When using PhoneGap the main files will be on the phone so relative files will be relative to the location on the phone.

If you need to access a file on a remote server (your mobile site) then it must be specified absolutely.

If your main HTML page within your PhoneGap app is at file://www/index.html and you try and access a relative file (say "logo.png") and so specify <img src="logo.png" /> you're really getting it from file://www/logo.png.

If you actually wanted the version of logo.png which is actually on your remote website, you have to provide the full (absolute) path or there's no way for the browser to know that when you specify "logo.png" you mean the one at "http://www.your-site.com/logo.png".

っ左 2024-10-12 00:54:52

您可以尝试使用标签。这会将您的基本 URL 设置为您需要的任何内容:

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

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

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

请参阅这个其他问题以获取有关此说明的更多信息。那里的人建议在本地相对 URL 之前添加一个 (.),尽管我没有测试这一点:

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

You can try using the <base> tag. This will set your Base URL to whatever you need:

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

Note this means now your local scripts need to be in absolute form:

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

See this other question for more info regarding this note. The guy there suggests to prepend a dot (.) before the local relative URL, though I didn't test this:

<script src="./js/phonegap.js"></script>
总以为 2024-10-12 00:54:52

我知道这已经是 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 设置为您需要的全局变量即可跟踪这些变化。

希望这有帮助。

I know this is 6/7 years old, but for any others arriving here for the same question...
Here's a solution, since there isn't a more "packaged" one:

3 quick steps:

1) Store your site domain in a global javascript variable

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

2) Use temporary variable to add your relative path to currentloc

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

3) Adjust currentloc if you do change the supposed "location" that you're calling relative path from on site

currentloc = currentloc + '/new/path'

** just remember if you make currentloc a global variable you need to keep track of these changes.

Hope this helps.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文