2013-03-21 50 views
1

我已经搜索了一个可以在多个项目中使用的一站式修复程序,但是我还没有发现任何工作。用于CSS的共享服务器和本地服务器的绝对路径使用PHP的PHP

所以,当我建立一个网站时,我使用PHP包括在整个网站中使用的网站的标题,导航和页脚。

所以对于一个模板文件,其中将包括头,导航,主体和页脚,我做的:

<?php include 'views/headerHTML.php'; ?> 

<?php include 'views/headerNav.php'; ?> 

<div id="main"> 

<!--content--> 

</div><!--main--> 

<?php include 'views/footer.php'; ?> 

现在我的CSS电话线位于headerHTML任何JS或跟踪片段一起。

如果网页位于多个文件夹中 - 则包含必须改变相对于根文件

<?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__)); 

但我似乎无法让他们在我的本地服务器及其虚拟服务器工作。我想要的是,无论我的网页在文件夹内有多深,heirarchy - 头文件中的引用,nav,footer中的引用代码片段或utils位于其各自的文件夹中都将被正确地调用。

我一直在做的是制定具体包括已在其中引用改为工作,所以:

<?php include '../../views/headerHTML_DoubleFolder.php; ?> 

这是指一个页面,是两个文件夹深。

我100%肯定这可能是我可以做的最糟糕的事情,否定这样做的目的包括在首位

有人让我出丑,教我一些新的东西,请= d!

我很感激。

EDIT ---------------问题的

示例=

本地主机/站点/登录/调用的login.php:

<?php include '../views/headerHTML.php'; ?> 

这headerHTML.php文件中有:

<link type="text/css" rel="stylesheet" href="css/style_v0313.css" /> 

正如你可以看到CSS的位置将不正确时login.ph p通过标题呼叫HTML

添加/或。/或dirname(FILE)到css href仍然不会在访问login.php时加载样式表

回答

2

您可以使用路径,例如/css/style.css。

+0

页相对于根文件夹内没有加载CSS – Dan 2013-03-21 19:04:57

+0

可以共享路径请求头中的文件? – 2013-03-21 19:07:27

+0

本地主机/网站/登录/ login.php中的的locahost www.site.com/login/login.php为WWW – Dan 2013-03-21 19:08:56

2

尝试使用“./addresshere”。

示例领域: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" /> 

./让你去的根(主)DIR ectory。 localhost上./给你本地主机地址

+0

./没有一个页面内的工作文件夹 - 的CSS没有加载 – Dan 2013-03-21 19:04:23