【发布时间】:2018-12-18 16:00:34
【问题描述】:
我有一个菜单文件,我想将它包含在我网站的每个文件中,以避免每次都编写相同的代码。我用 require_once("menu.php");问题是当我点击由 menu.php 生成的链接时,它会变成一个相对链接,因为它没有找到该文件。 这是我的目录:
menu.php:
<?php echo'
<div class="topnav-bar">
<ul class="topnav">
<li class="dropdown"><a href="index.php">Home</a>
<ul class="dropdown-content">
<li><a href="geografia.php">Geografia</a></li>
<li><a href="clima.php">Clima</a></li>
<li><a href="storia.php">Storia</a></li>
</ul>
</li>
<li class="dropdown"><a href="pages/luoghi.php">Luoghi</a>
<ul class="dropdown-content">
<li><a href="pages/luoghi/chiesette.php">7 Chiesette</a></li>
<li><a href="pages/luoghi/catajo.php" class="active">
Castello del Catajo</a></li>
<li><a href="pages/luoghi/praglia.php">Abbazia di Praglia</a></li>
<li><a href="pages/luoghi/carrareseeste.php">
Castello carrarese di Este</a></li>
<li><a href="pages/luoghi/lispida.php">Castello di Lispida</a></li>
<li><a href="pages/luoghi/pelagio.php">Castello San Pelagio</a></li>
</ul>
</li>
<li class="icon">
<a href="javascript:void(0);" onclick="menuMobile()">☰</a>
</li>
</ul>
</div>'; ?>
例如,如果我从“index.php”单击“chiesette.php”,浏览器会显示 URL http://127.0.0.1/pages/luoghi/chiesette.php。现在,如果我从这个页面点击“catajo.php”,它会显示http://127.0.0.1/pages/luoghi/pages/luoghi/catajo.php。
我做错了什么?
【问题讨论】:
-
在每个链接的开头添加斜杠,以便它从根目录而不是当前目录开始。只需确保添加文件的完整路径即可。
-
通过在 pages/ 之前添加斜杠将相对路径更改为绝对路径,如下所示:
<a href="/pages/luoghi/chiesette.php"> -
@Alexey 这实际上是
root-relative URL,绝对通常在其中有协议。 -
放斜线是我曾经在我的机器上工作的解决方案,但由于我的队友使用的是 windows(我正在使用 manjaro)并且链接对他不起作用,所以出现了问题。我们都在使用 apache2。