我的根目录中有一个索引文件。
我有一个名为pages的目录。
导航栏位于包含目录中。
如果我想在index.php中以及每个pages.php中包含navbar,它们位于pages目录中。构造这个导航栏的正确方法是什么,以便php可以通过它所在的页面上下移动目录。
每个页面都标识为
$page = currentPage
这是我当前的导航栏,位于包含目录
<ul>
<?php if ($page == 'home') { ?><li class="active"><a href="index.php" class="active">Home</a></li>
<?php } else { ?><li><a href="../index.php">Home</a><?php } ?>
<?php if ($page == 'contact') { ?><li class="active"><a href="contact.php" class="active">Contact Us</a></li>
<?php } else { ?><li><a href="pages/contact.php">Contact Us</a><?php } ?>
<?php if ($page == 'services') { ?><li class="active"><a href="services.php" class="active">Services</a></li>
<?php } else { ?><li><a href="pages/services.php">Services</a><?php } ?>
<?php if ($page == 'employees') { ?><li class="active"><a href="employees.php" class="active">Employees</a></li>
<?php } else { ?><li><a href="pages/employees.php">Employees</a><?php } ?>
<?php if ($page == 'dashboard') { ?><li class="active"><a href="dashboard.php" class="active">Dashboard</a></li>
<?php } else { ?><li><a href="pages/dashboard.php">Dashboard</a><?php } ?>
</ul>
目录看起来像这样。
根
根/包括
根/页
提前感谢您的帮助。我意识到我可以做一些简单的事情来解决这个问题,但我真的希望将来能够理解这一点。
这是当前页面的布局方式:
<?php $page = 'contact'; ?>
<html>
<meta charset="utf-8">
<title>Contact Us</title>
<head>
<base href="http://www.mysite.com/Dir_IM_Working_on_root/pages/" />
<link rel="stylesheet" type="text/css" href="../css/styles.css" />
</head>
<body>
<div id="wrapper">
<div id="nav">
<?php include '../includes/nav.php'; ?>
</div><!-- CLOSING NAV DIV -->
<div id="main">
</div><!-- CLOSING MAIN DIV -->
<footer>
<?php include '../includes/footer.php'; ?>
</footer>
</div><!-- CLOSING WRAPPER DIV -->
</body>
</html>
答案 0 :(得分:2)
最简单的方法是在所有情况下输出绝对URL。 (/test.php)
如果您希望在子文件夹中运行站点,可以在变量前添加所有路径。这可以更改为您网站的当前位置。
另一种方法是添加
<base href="http://www.example.org/subfolder/" />
到你的html代码并相应地改变它与绝对URL。所有URL都基于您放入属性的内容。这是一个非常优雅的解决方案,但它影响很大,如果没有受过网络链接培训,这可能会令人惊讶。
我认为没有“正确”的方式。 Typo3使用基本标签变体,它很可能是我使用的方式。许多其他软件使用变量变量(或将路径包装在函数中 - 这只是实现相同的另一种方式)。只是尝试一些方法,并决定一个看起来最吸引你的那个,我会说。
根据我的经验,几乎没有人使用的是相对URL。
将此html与基本html标记结合使用。
<ul>
<li<?php if ($page == 'home') echo ' class="active' ?>><a href="index.php">Home</a></li>
<li<?php if ($page == 'contact') echo ' class="active' ?>><a href="pages/contact.php">Contact Us</a></li>
<li<?php if ($page == 'services') echo ' class="active' ?>><a href="pages/services.php">Services</a></li>
<li<?php if ($page == 'employees') echo ' class="active' ?>><a href="pages/employees.php">Employees</a></li>
<li<?php if ($page == 'dashboard') echo ' class="active' ?>><a href="pages/dashboard.php">Dashboard</a></li>
</ul>