我已经搜索了一个可以在多个项目中使用的一站式修复,但我还没有找到任何可行的工作。
因此,当我构建一个站点时,我使用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&amp;其中的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; ?>
这适用于两个文件夹深的页面。
我百分百肯定这可能是我能做的最糟糕的事情并且否定了首先做包含的目的
有人愚弄我并教给我一些新的东西= 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时加载样式表
答案 0 :(得分:2)
您可以使用路径,例如/css/style.css。
答案 1 :(得分:2)
尝试使用&#34; ./ addresshere&#34;。
示例域名: www.test.com
假设您的网站位于以下文件夹中: www.test.com/portal
并且您的css已开启: www.test.com/portal/css
CSS调用示例:
<link type="text/css" rel="stylesheet" href="./portal/css/test.css" />
./ 允许您访问根(主)目录。在localhost上, ./ 会为您提供 localhost 地址