PhoneGap 相对 URL
我已经使用 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
使用 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 fromfile://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".
您可以尝试使用
标签。这会将您的基本 URL 设置为您需要的任何内容:请注意,这意味着现在您的本地脚本需要采用绝对形式:
请参阅这个其他问题以获取有关此说明的更多信息。那里的人建议在本地相对 URL 之前添加一个点 (
.
),尽管我没有测试这一点:You can try using the
<base>
tag. This will set your Base URL to whatever you need:Note this means now your local scripts need to be in absolute form:
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:我知道这已经是 6/7 年前的事了,但对于其他因同样问题来到这里的人来说......
这里有一个解决方案,因为没有更“打包”的解决方案:
3 个快速步骤:
1) 将您的网站域存储在全局 JavaScript 变量中
2) 使用临时变量将相对路径添加到
currentloc
3) 如果您确实更改了从站点调用相对路径的假定“位置”,请调整
currentloc
** 只要记住您是否将
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
2) Use temporary variable to add your relative path to
currentloc
3) Adjust
currentloc
if you do change the supposed "location" that you're calling relative path from on site** just remember if you make
currentloc
a global variable you need to keep track of these changes.Hope this helps.