链接's路径模块化网页设计


Link's path in modular web design

我正在用PHP和相对路径测试模块化网页设计,如下所示:

<?php include('top.php'); ?>
<?php include('header.php'); ?>
    <!-- Page content -->
<?php include('footer.php'); ?>

所以很容易创建新页面的结构。

top.php中,我使用相对路径链接样式表和脚本,如下所示:

<link type="text/css" rel="stylesheet" href="css/style.css" />

但是当我想在子目录中的页面中使用相同的页面结构时就会出现问题。top.phpheader.phpfooter.php总是相同的。在子目录中,我使用例如:

<?php include('../top.php'); ?>
<?php include('../header.php'); ?>
    <!-- Page content -->
<?php include('../footer.php'); ?>

但是这是错误的,因为链接的相对路径(在包含中)。我如何才能正确地编写包含中的链接,以便在任何子目录中使用它们而不会出现问题?

我知道我可以使用http://www.site.com/path/file形式的绝对路径,但我还不知道www.site.com url。如何让PHP创建绝对路径而不考虑域名?

我怎样才能正确地做到这一点?

对不起,我不是英语母语者。

您应该使用__DIR__常量,它指向包含其他文件的文件的位置。然后使用相对(!)路径指向要包含的文件。这样的:

require_once(__DIR__ . '/../include.php');