如何创建相对于文档根目录的所有路径?

时间:2013-09-27 20:56:32

标签: php relative-path

我的项目目录结构是

/admin
    L index.php
/includes
    L scripts.php
    L common.php
/css
/js
index.php
header.php
footer.php
...

在index.php中我包含/includes/scripts.php,它包含对/ css目录中各种css文件的引用,如:

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

等...

当从文档根目录中包含/includes/scripts.php时,一切正常但如果我从不同的目录(即/ admin)中包含scripts.php,则路径不再有效,并且包含所有引用的文件失败。无论我从项目中调用它们的哪个位置,如何创建相对于文档根目录的所有路径?

2 个答案:

答案 0 :(得分:2)

使用<base href="/"/>

查看此问题以获取更多信息:Is it recommended to use the base html tag

或手动将您的网址修改为相对于根目录/css/style.css

答案 1 :(得分:2)

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

在网址前添加斜杠以从网络根目录中读取。请记住,文档根目录和Web根目录之间存在差异。文档根目录可以解析为/home/sites/www/yourdomain.com/

亚当的回答可能更准确地符合您的需求,但总的来说,如果这是您的目标,您为什么要编写自己的路径而不是相对于网络根?看来你的问题更多的是一个基本的组织错误,可以通过采用标准实践来解决

或者,您可以定义基本URL变量并使用它来写出这些链接:

<?php
$base_url = 'http://www.yoursite.com/';
// $base_url = 'http://dev.yoursite.com/'; if you work locally and have defined this in your vhosts file
?>

<link rel="stylesheet" type="text/css" href="<?php echo $base_url; ?>css/jquery.alerts.css" />