2014-03-18 187 views
0

在我的public_html文件夹中,我有以下目录:PHP包括和相对文件路径

- includes (in here I have header.php which is included in index.php) 
- images 
- styles 
- scripts 

index.php包括header.php,这是我引用我的样式,脚本,图片等

一切都很好直到我尝试直接从包含header.php的includes目录中加载页面,例如:

正在工作:www.mysite.com/index.php

不工作:www.mysite.com/includes/example_page.php(其中例如页面还包括的header.php)

example.ph p没有样式表,图片或脚本的加载。这是因为它正在public_html/includes中查找它们。很显然,将文件路径更改为../styles/stylesheet.css的作品。但这不是一个理想的解决方案,特别是如果我必须更改header.php中每个图像的文件路径。

如何检测包含子目录中的页面是否将文件路径设置为指向public_html?

chdir();似乎没有工作。

回答

0

在HTML/CSS中使用绝对路径,例如

<link rel="stylesheet" href="/css/styles.css" /> 
          ^--- start at top of site document root 

<img src="/images/kittens.jpg" /> 
      ^--- start at top of site document root 

然后,你把你的脚本就不会磨砂的的HREF/SRC公司将始终启动你的网站的网址空间的顶部和工作的方式了。

您将失去的东西是在子目录中托管此特定网站的能力,例如,如果你决定将它移动到

http://example.com/oldsite/index.php 

所有的路径会在href/src目录将不得不重新编写说/oldsite/images/kittens.jpg/oldsite/css/styles.css