【发布时间】:2013-03-11 10:05:26
【问题描述】:
我已经搜索了一个可以跨多个项目使用的一站式解决方案,但我还没有找到任何可以工作的东西。
所以当我建立一个网站时,我使用 PHP 包含在整个网站中使用的网站的页眉、导航和页脚。
所以对于包含页眉、导航、正文和页脚的模板文件,我会这样做:
<?php include 'views/headerHTML.php'; ?>
<?php include 'views/headerNav.php'; ?>
<div id="main">
<!--content-->
</div><!--main-->
<?php include 'views/footer.php'; ?>
现在我的 CSS 调用行与任何 JS 或跟踪 sn-ps 一起位于 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__));
但我似乎无法让他们在我的本地服务器和他们的虚拟服务器上工作。我想要的是,无论我的网页在文件夹层次结构中有多深 - 页眉、导航、页脚中引用代码 sn-ps 或位于其各自文件夹中的实用程序的引用都将被正确调用。
我一直在做的是设置特定的包含,将其中的引用更改为这样:
<?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 位置将不正确
在css href中添加/或./或dirname(FILE)仍然不会在访问login.php时加载样式表
【问题讨论】:
标签: php html css relative-path absolute-path