当我从例如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上运行时,一切正常。当我将它移动到我的实时服务器时,问题就开始了。
答案 0 :(得分:3)
在ajax前面加上斜线,即/ajax
。当您离开斜线时,您将获得相对路径,即相对于您所在位置的路径。要获得绝对路径,请始终使用/
。
答案 1 :(得分:0)
上述答案的替代方案是您可以在头部添加基础标记。这将告诉浏览器从哪里开始所有相对路径。针对您的特定问题,您可以添加:
<base href="http://domain.com">
这会导致您添加的任何相对URL从root开始。