摘要:资产有错误的URL
资产,当我使用基于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,...
因此,所有的移动页面都有他们的“头” seccion基本URL里面像
<base href="mydomain.com/mobile/" />
为了使所有的资产与相对(和干净的)URL一起工作。
什么工作:
当访问网页使用完整的URL,或禁用jQuery Mobile的的页面导航模型($.mobile.ajaxEnabled = false
)一切(链接,资产)的作品就像一个魅力。
问题:
当我不关闭的jQuery Mobile的页面导航模型,第一个移动网页我打开工作正常,但在那之后,每当我按照页面中的链接时,新页面通过Ajax加载并注入到DOM中,但所有带有相对(和干净)URL的资产/链接停止工作。他们有一个错误的网址。
例子:
当我访问mydomain.com/mobile/aboutus的 “关于我们” 与相对URL logo.png(绝对是mydomain.com/mobile/logo.png)是正常显示的标志形象。但是,当我访问mydomain.com/mobile/home,我点击一个链接到mydomain.com/mobile/aboutus,在“关于我们”页面加载,但标志图像URL被改变aboutlogo.png而不是正确的一个标志。PNG
参考: http://jquerymobile.com/test/docs/pages/docs-navmodel.html
jQuery的 移动的页面导航模型的另一个关键因素是 基本元素,将其注入到 头部和修改每个 页面更改,以确保任何资产 是 页面上引用(CSS,图片,JS等)将适当 路径请求。在不支持 动态更新到基本元件 (如Firefox 3.6)浏览器,jQuery Mobile的 遍历所有引用 资产的页面和前缀他们 href和SRC与基地 路径属性。
问:
¿我是不是做错了¿是一个bug或我missunderstood的documentation¿how我能得到通过AJAX加载有正确的URL的资产?
我想使用jQuery Mobile的页面的导航模式,以在移动浏览器看中的转变。
显示我的代码!:
<!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>
<!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>
感谢您的回答堡垒,但它并没有帮助。我的图像是相对于我的基地网址(ydomain.com/mobile/),这是从我的根目录(ydomain.com/)不同。即使我在开始时将图像src设置为带有“/”的内容,结果也是一样的。 – 2011-05-03 11:23:47
也许你不能使用Base url,因为这些文档说:** jQuery Mobile使用生成的绝对URL路径的组合来管理http请求,并操纵生成的 元素的href属性。这两种方法的结合使我们能够创建包含加载页面的完整路径信息的URL,以及正确指导由加载的页面(例如图像和样式表)所做的资产请求的基本元素。** –
Fortes
2011-05-27 21:42:26
任何人都知道如何解决这个问题? – user418775 2011-09-10 15:24:34