有人能解释一下在PHP include()情况下路径是如何工作的吗

有人能解释一下在PHP include()情况下路径是如何工作的吗,php,Php,我不明白。 当试图包含来自不同目录的文件时,我肯定我错过了一些真正简单的东西 站点结构是这样的。 如果我从/reports/top\u sellers\u report.php文件中include(“includes/header.php);,则对css文件的调用无效。 为了让它工作,我必须把。/styles/styles.css 但是,如果我从根目录中打开“product\u dtails.php”,它也包含头文件,那么css文件将不会加载,我需要删除。/,以使其正常工作 我赢不了 我错过什

我不明白。 当试图包含来自不同目录的文件时,我肯定我错过了一些真正简单的东西

站点结构是这样的。

如果我从/reports/top\u sellers\u report.php文件中
include(“includes/header.php);
,则对css文件的调用无效。
为了让它工作,我必须把
。/styles/styles.css

但是,如果我从根目录中打开“product\u dtails.php”,它也包含头文件,那么css文件将不会加载,我需要删除
。/
,以使其正常工作
我赢不了

我错过什么了吗
4小时的在线搜索表明我是

我认为您应该考虑使用MVC方法,因为这可能会帮助您更好地组织代码:

include语句是在服务器上计算的,因此无论从何处包含文件,都需要从那里相对地指定它。CSS“include”正在浏览器中计算,因此您需要使文件路径与该目录相对

我建议使用MVC方法,因为它可以帮助您管理代码,并将网站的不同部分划分为不同的部分,这将有助于避免此问题


我想你可以在每一页上绝对地引用你的样式表,这也行。

你的问题实际上与PHP无关。只需查看URL:

http://www.example.com/
http://www.example.com/reports/
http://www.example.com/styles/styles.css
根据您在站点上的位置,到
style.css
的相对路径可能会改变,因此当您访问
http://www.example.com/reports/
您必须使用
。/styles/styles.css
,而
http://www.example.com/
你必须告诉我们
样式/styles.css


解决问题的最简单方法可能是使用绝对URL,如
http://www.example.com/styles/styles.css
或基本路径
/styles/styles.css
而不是
。/styles/styles.css
。我推荐后者。

据我所知,include是相对于索引的,因此您有root/index.php

在index.php中,您应该使用include(“style/style.css”) 在includes/header.php中,您需要添加../styles以将您重定向到root,然后再重定向到styles文件夹,以此类推


如果您直接打开product_dtails.php,它的行为将类似于index.php,因此您只需使用styles/style.php

这肯定会有所帮助。只是想知道如何使用基本路径方法。我尝试添加/样式,但不起作用。我试过
似乎也不起作用。它快把我逼疯了!您可以尝试
$\u服务器['REQUEST\u URI']
并将文件夹替换为