jQuery加载和相对路径

时间:2013-09-04 07:57:21

标签: php jquery

我正在使用jQuery加载页面内容,如下所示:

$("#content").load(path);

内容文件纯粹是这样的内容:

<!--page.php-->
I am content

但是,当我想在我的内容中包含图像时:

<!--page.php-->
<img src="images/image.jpg"/>

该路径仅相对于jQuery脚本的原点而不是page.php文件起作用,因此以下示例不适用于上述代码:

Directory tree:

index.php
jQuery.js
pages/
  page.php
  images/
    image.jpg

因为它正在使page.php相对于jQuery所在的位置,所以它无法找到images文件夹,除非我给它一个确切的路径,在我的实际站点中所有时间都会根据内容文件位于。

是否有一种非黑客的方法,不涉及我在我想要引用的每个图像或内容中放置确切的路径?

3 个答案:

答案 0 :(得分:0)

我知道你说非hacky但你可以在加载内容

后执行此操作
$("#content").load(path + '/page.php');

然后

$('#content img').each(function(){
    $(this).prop('src', path + '/' + $(this).prop('src'))
})

答案 1 :(得分:0)

您可以为图像目录的路径设置一个全局变量。 并将该变量用于路径,无论您将图像放在哪里。

如果路径发生变化,则只需更改一个变量值。

答案 2 :(得分:0)

使用 attr('src')而不是 prop ,因为prop可以将基本URL添加到相对路径中。

$(this).find('img').each(function () {
    $(this).attr('src', address + $(this).attr('src'))
});