我创建了一个使用PHP包含的应用程序,如果您不介意将PHP包含文件放在与其他文件相同的位置,那么该应用程序非常有用。但我想尽可能整齐地分割我的代码。请参阅以下文件结构:
http://beginsathome.org.uk/BAAF/images/file_system.png
尽可能地,我希望所有?.php文件都在文档根目录中,并且所有与php相关的包含文件(例如数据库连接详细信息)都位于“inc”文件夹中。
对于html和相应的css,图像等,我创建了一个'templates'文件夹来保存所有细节,其中包含一个名为'includes'的子文件夹,它将保存html包括诸如页眉,页脚等。
不幸的是,即使我的图片和CSS与我的html模板位于同一个地方,但在查看网站时似乎没有显示css和图像(尽管页眉/页脚的文本部分也是如此)。
http://www.beginsathome.org.uk/BAAF/images/screenshot.png
我一直在努力做一些研究并明白使用像
这样的东西
$path = $_SERVER['DOCUMENT_ROOT'];
$path .= "/common/header.php";
include_once($path);
可能是一种前进的方式,但我是PHP新手,不知道在哪里放置它,或指定哪条路线。我也明白这个方法可以根据它是在apache,linux还是windows服务器上而有所不同。理想情况下,我希望该方法适用于所有服务器。我目前正在使用mac上的本地apache服务器进行开发。
非常感谢你的帮助 颖
答案 0 :(得分:2)
答案 1 :(得分:1)
不,$_SERVER['DOCUMENT_ROOT']
独立于操作系统或Web服务器,如果设置正确(通常是这样)。从 filesystem 根开始,此方法是创建绝对路径的最佳方法之一。
然后你的浏览器会请求一个CSS文件。它不是从服务器的文件系统请求它,而是从虚拟Web服务器请求它。您对cSS文件所需要的只是从服务器根目录设置其路径,使其成为绝对路径(即“可从每个地方访问”)。绝对路径始终从/
符号开始。
所以,根据你的照片,/templates/css/baaf.css
可以。
答案 2 :(得分:0)
尝试使用路径中的../
首先从当前目录移出。
答案 3 :(得分:0)
如果我建议您将dir结构改为:
对于您的doc root,然后确保将php_include_path设置为:
应该让事情变得更容易组织