我可以看出需要动态和相对路径生成href链接的原因之一是,如果您在多个域或具有不同路径的站点上运行项目(例如,您的项目可在
http://myproject.example.org/和
http://example.org/myprojecttest/ 上使用),这样做会更方便。如果不是这种情况,我建议直接相对于根文件夹指定您的CSS包含内容:
<link href="/css/style.css" />
如果这对您适用,请尝试以下方法:
在每个需要header.php的顶层文档中,添加一个$ROOT变量,表示该顶层文档相对于根目录的位置。例如:
$ROOT = './';
或者
$ROOT = '../';
或者
$ROOT = '../../';
现在,在您的header.php文件中,您可以使用以下代码:
<link href="<?php echo $ROOT; ?>css/style.css" />
这可以让您创建一个header.php文件,适用于任何页面和任何相对路径。
完整示例
包含的文件(/path/header.php)
<html><body>
<head>
<link href="<?php echo $ROOT; ?>css/style.css" />
[...]
文件1 (/path/index.php):
<?php
$ROOT = './';
include 'header.php';
?>
文件1 (/path/admin/index.php):
<?php
$ROOT = '../';
include '../header.php';
?>
File 3 (/path/admin/test/magic.php):
<?php
$ROOT = '../../';
include '../../header.php';
?>
/styles/your.css
? - Mike Christensen