1

我的项目目录结构是

/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" />

ETC...

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

4

2 回答 2

2

利用<base href="/"/>

检查此问题以获取更多信息:是否建议使用基本 html 标记

或手动将您的 URLS 修改为相对于根目录,例如/css/style.css

于 2013-09-27T20:58:16.723 回答
2
<link rel="stylesheet" type="text/css" href="/css/jquery.alerts.css" />

在 URL 前添加一个斜杠以从 Web 根目录读取。请记住,文档根目录和 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" />
于 2013-09-27T20:59:52.527 回答