PhoneGap 中的绝对路径

发布于 2024-12-27 10:13:00 字数 329 浏览 2 评论 0原文

我的情况如下: 我有一个index.html 和一些从服务器加载HTML 片段的JavaScript。在这些片段中,我有一些图像的 URL,例如 /some/folder/picture.jpg

当然这些在PhoneGap中不起作用。 Weinre 告诉我 PhoneGap 正在尝试从以下位置加载图片 file:///some/folder/picture.jpg

有什么想法可以解决这个问题吗?我正在考虑诸如基本 href 之类的东西,或者 PhoneGap 中可以指定根路径的某些配置,但我没有找到类似的东西......

谢谢, 迈克尔

My situation is the following:
I have an index.html and some JavaScript that loads HTML snippets from the server. Inside these snippets, I have some URLs to images like
/some/folder/picture.jpg

Of course these do not work in PhoneGap. Weinre tells me that PhoneGap is trying to load the picture from
file:///some/folder/picture.jpg

Any ideas how to solve this? I was thinking about something like a base href, or some configuration in PhoneGap where one could specify a root path, but I did not find anything like that ...

Thanks,
Michael

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

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

发布评论

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

评论(2

ゞ记忆︶ㄣ 2025-01-03 10:13:00

我遇到了同样的问题,特别是当您有很多视图(页面)并想要从菜单加载一个视图(页面),但您位于未知位置时。

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

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

这将为您提供“基础”的绝对 URL。 www 是与 IOS 和 Android 相关的文件夹,因此这也使您的应用程序兼容多个平台。

由此,您可以使用正则表达式传递整个文档,就像 jquery mobile 使用 data-* 属性来描述其元素一样。您只需将正则表达式替换为返回的路径即可。您需要在初始化期间执行此操作,否则会造成巨大的瓶颈。

希望这对您有所帮助并且符合您正在寻找的内容。

干杯,

森坦提亚

I had the same problem especially when you have a lot of views (pages) and want to load one from a menu, yet you are at an unknown location.

The simple work around is to use the window.location object.

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

This gives you the absolute URL to your 'base'. The www is the folder which is relevant for IOS and Android, so this also makes your app compatible in multiple platforms.

From this you can use a regular expression which passes the entire doc like jquery mobile does with data-* attributes to describe their elements. You simply replace the regular expression with the path returned. You'll want to do this during initialisation otherwise it will create a massive bottle neck.

Hope this helps and is along the lines of what you're looking for.

Cheers,

Sententia

不知所踪 2025-01-03 10:13:00

您不能使用 来做到这一点,因为 / 始终是相对于主机的 - 它不能被重新定义为位于子目录中。您有两个选择:

  • 重写 HTML 以使用完全相对路径,例如 ../../some/folder/picture.jpg (或者让某些东西作为构建步骤为您进行重写),或者

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

我对 PhoneGap 不熟悉,所以无法评论自动选项,但我个人会开始使用相对 URL。

You can't do that with a <base> because / is always host-relative — it can't be redefined to be in a subdirectory. You have two options:

  • rewrite your HTML to use fully relative paths like ../../some/folder/picture.jpg (or have something do the rewrite for you as a build step), or

  • alter the "browser" (PhoneGap's wrapper) so that it loads URLs differently.

I'm not familiar with PhoneGap so I can't comment on automatic options, but I personally would start using relative URLs.

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