祝您愉快!我在PHP上遇到了一些麻烦。如果我单击一个href,即<a href = 'members/loans/loan-application-form.php'>
,它会转到loan-application-form.php,但如果我在loan-application_form.php内部再次单击它(因为它位于所有页面中存在的导航栏上(,则锚的href会连接到现有的url上,它会创建一个错误,告知地址不存在。我已经知道问题是它搜索当前目录上的地址,可能会返回错误,因为目录上没有现有地址,因为它是源或父目录。避免这种情况的最佳方法是什么?
在页眉中添加一个base
标记。这将在所有HTML URL的前面加上给定的基本URL。(包括图像、CSS和JS调用(
<head>
<base href="http://www.yourdefaulturl.com/">
</head>
然后您的URL将是http://www.yourdefaulturl.com/members/loans/loan-application-form.php
您可以使用绝对路径
<a href = 'http//your.site.cpm/members/loans/loan-application-form.php'>
建议:你可以阅读这篇文章
或者这个堆栈问题
或者,您可以使用../
在相对路径内导航
假设您的导航栏位于/navigation/navbar.html
然后你可以有一个像这样的相对路径
<a href = '../members/loans/loan-application-form.php'>
通过指定这样的相对URL:
<a href = 'members/loans/loan-application-form.php'>
您只是简单地表示希望从当前页面转到该页面,因此它被添加到当前URL的末尾。避免这种情况的最好方法很简单,就是设置一个绝对的URL,如下所示:
<a href = 'http://projectname/members/loans/loan-application-form.php'>
即使不使用http://
,它通常仍然被认为是相对的,所以一定要包括它。
另一种同样但稍微快一点的方法是在头文件中添加一个变量,例如:
$url = 'http://example.com';
然后当指定URL时,你可以说:
<a href = '<?php echo $url;?>/members/loans/loan-application-form.php'>
这只是意味着,如果你说更改你的域,而不是编辑每个URL,你可以简单地编辑变量值并使用它