我的项目目录结构是
/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,则路径不再有效,并且包含所有引用的文件失败。无论我从项目中调用它们的哪个位置,如何创建相对于文档根目录的所有路径?
答案 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" />