gpt4 book ai didi

jquery - 使用基于 AJAX 的 jQuery Mobile 页面导航模型加载的资源有错误的 URL

转载 作者:行者123 更新时间:2023-12-01 00:33:06 25 4
gpt4 key购买 nike

摘要:

当我使用基于 AJAX 的 jQuery Mobile 页面导航模型加载资源时,资源的 URL 错误。

场景:

2个网站:

  • mydomain.com -> 正常站点(这里没问题,算了)
  • mydomain.com/mobile -> 移动网站

实现:

所有移动页面都有一个干净的 URL,例如 mydomain.com/mobile/page 即:mydomain.com/mobile/home , mydomain.com/mobile/aboutus , mydomain.com/mobile/contact ,...

因此,所有移动页面的“头部”部分都有一个基本 URL,例如

<base href="mydomain.com/mobile/" />

为了让所有资源都能使用相对(且干净)的 URL。

什么有效:

当使用完整 URL 访问页面或禁用 jQuery Mobile 的页面导航模型 ($.mobile.ajaxEnabled = false) 时,所有内容(链接、资源)都会发挥作用。

问题:

当我不禁用 jQuery Mobile 的页面导航模型时,我打开的第一个移动页面工作正常,但之后,每当我点击页面中的链接时,新页面都会通过 Ajax 加载并注入(inject)到 DOM 中,但所有的 具有相对(且干净)URL 的 Assets /链接停止工作。他们的网址错误。

示例:

当我访问mydomain.com/mobile/aboutus时“aboutus”有一个 Logo 图像,其相对网址 logo.png (绝对网址为 mydomain.com/mobile/logo.png )已正确显示。但是当我访问mydomain.com/mobile/home时我点击 mydomain.com/mobile/aboutus 的链接,“aboutus”页面已加载,但 Logo 图像网址更改为 aboutlogo.png,而不是正确的 logo.png

引用: http://jquerymobile.com/test/docs/pages/docs-navmodel.html

Another key ingredient to jQuery Mobile's page navigation model is the base element, which is injected into the head and modified on every page change to ensure that any assets (css,images,js,etc) referenced on that page will be requested from a proper path. In browsers that don't support dynamic updates to the base element (such as Firefox 3.6), jQuery Mobile loops through all of the referenced assets on the page and prefixes their href and src attributes with the base path.

问题:

我做错了吗?这是一个错误还是我误解了文档?如何通过 AJAX 加载资源以获得正确的 url?

我想使用 jQuery Mobile 的页面导航模型,以便在移动浏览器中实现精美的转换。

显示代码!:

mydomain.com/mobile/home代码:

<!DOCTYPE html>
<head>
<base href="http://mydomain.com/mobile/" />
<link rel="stylesheet" href="jquery.mobile-1.0a3.min.css">
<script src="http://code.jquery.com/jquery-1.5.min.js"></script>
<script src="jquery.mobile-1.0a3.min.js"></script>
...
</head>
<body>
<div id="home" data-role="page">
<div data-role="header">Foo</div><!--header -->

<div data-role="content">
<a href="about">About us</a>
</div><!--content -->

<div data-role="footer">Bar</div><!--footer -->
</div><!--page -->
</body>
</html>

mydomain.com/mobile/about代码:

<!DOCTYPE html>
<head>
<base href="http://mydomain.com/mobile/" />
<link rel="stylesheet" href="jquery.mobile-1.0a3.min.css">
<script src="http://code.jquery.com/jquery-1.5.min.js"></script>
<script src="jquery.mobile-1.0a3.min.js"></script>
...
</head>
<body>
<div id="about" data-role="page">
<div data-role="header">Foo</div><!--header -->

<div data-role="content">
<img src="logo.png" alt=""/><!--broken when loaded via AJAX-->
<a href="home" data-role="button" data-rel="back">Back</a><!--broken when loaded via AJAX-->
</div><!--content -->

<div data-role="footer">Bar</div><!--footer -->
</div><!--page -->
</body>
</html>

最佳答案

我遇到了同样的问题,我想我已经找到了解决方案

我相信 jQuery Mobile 搞乱了基本 url,我发现了一些旧文档,谈论它的“基本 url 管理系统”

http://jquerymobile.com/demos/1.0a1/#docs/pages/docs-navmodel.html

如果您使用相对于根目录的 URL(以“/”开头),则所有图像都会正确加载。

在您的情况下,使用以下代码应该可以工作:

<img src="/mobile/logo.png" alt=""/>

我知道最好有干净的相对 URL,但我认为 jquery mobile 现在不支持它们

希望这有帮助

关于jquery - 使用基于 AJAX 的 jQuery Mobile 页面导航模型加载的资源有错误的 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5338244/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com