Javascript调用相对路径而不是来自Web根目录

时间:2013-06-04 18:00:43

标签: javascript jquery .htaccess mod-rewrite

当我从例如Ajax或其他函数调用javascript中的文件时,javascript尝试相对于当前地址调用它,而不是从baseURL或root调用它。

示例如果我在domain.com/my-page/上,我尝试使用

调用php文件
$.post('ajax/class.designer.php', { action: 'getcard', cardID: id },
        function(data) {
            loadCard(data)
        }, "json");

它试图调用domain.com/my-page/ajax/class.designer.php,当我真的希望它调用domain.com/ajax/class.designer.php时。

与CKEditor等插件相同,尝试相对于当前地址调用它的.css文件。

应用程序正在使用mod_rewrite和友好的url。所有内容都被重定向到index.php,它位于/和index.php中,然后调用函数来显示页面。

我已经设置了RewriteBase /并且我还在我的HTML头中将baseurl设置为根路径。

注意:当我在localhost上运行时,一切正常。当我将它移动到我的实时服务器时,问题就开始了。

2 个答案:

答案 0 :(得分:3)

在ajax前面加上斜线,即/ajax。当您离开斜线时,您将获得相对路径,即相对于您所在位置的路径。要获得绝对路径,请始终使用/

答案 1 :(得分:0)

上述答案的替代方案是您可以在头部添加基础标记。这将告诉浏览器从哪里开始所有相对路径。针对您的特定问题,您可以添加:

<base href="http://domain.com">

这会导致您添加的任何相对URL从root开始。