我已经搜索了可以在多个项目中使用的一站式解决方案,但我还没有找到任何可以工作的东西。
因此,当我构建站点时,我使用 PHP 包含在整个站点中使用的站点的页眉、导航和页脚。
所以对于一个包含页眉、导航、正文和页脚的模板文件,我这样做:
<?php include 'views/headerHTML.php'; ?>
<?php include 'views/headerNav.php'; ?>
<div id="main">
<!--content-->
</div><!--main-->
<?php include 'views/footer.php'; ?>
现在我的 CSS 调用行与任何 JS 或跟踪片段一起位于 headerHTML 中。
如果网页位于多个文件夹中 - 那么包含必须相对于根文件进行更改
<?php include '../../views/headerHTML.php; ?>
但是其中包含的 CSS 和 JS 引用会变得不正确,因为它是相对于 ROOT 编写的
<link type="text/css" rel="stylesheet" href="css/test.css" />
我在本地使用 WAMP,我所有的项目都基于与多个提供商(GD、fatcow 等)共享的虚拟服务器,并且它们都有自己古怪的根引用等。
我尝试使用解决方案,例如
$_SERVER['DOCUMENT_ROOT']
define('ROOT', dirname(__FILE__));
但我似乎无法让他们在我的本地服务器和他们的虚拟服务器上工作。我想要的是,无论我的网页在文件夹层次结构中有多深 - 页眉、导航、页脚中的引用代码片段或位于其各自文件夹中的实用程序将被正确调用。
我一直在做的是设置特定的包含,其中的引用已更改为这样:
<?php include '../../views/headerHTML_DoubleFolder.php; ?>
这适用于深度为两个文件夹的页面。
我 100% 确定这可能是我能做的最糟糕的事情,并且首先否定了做包括的目的
有人愚弄我,请教我一些新东西=D!
我很感激。
编辑 - - - - - - - -
问题示例 =
localhost/site/login/login.php 调用:
<?php include '../views/headerHTML.php'; ?>
在该 headerHTML.php 文件中有:
<link type="text/css" rel="stylesheet" href="css/style_v0313.css" />
正如您所看到的,当 login.php 通过 headerHTML 调用它时,css 位置将不正确
访问 login.php 时,将 / 或 ./ 或 dirname( FILE ) 添加到 css href 仍然不会加载样式表