好吧,所以我遇到了嵌套php includes的问题,我想知道什么是最佳实践和易用性的良好折衷。
这是我的网站结构:
root
- index.php
-/include
- header.php
- footer.php
-/articles
-article-1.php
-/css
-style.css
问题是:在index.php中,我有一个include "include/header.php"
。在header.php中,我有许多相对路径,例如<link href="css/style.css>
。在文章-1.php中,我也有include "include/header.php"
。
所以索引文件是有效的。但是article-1文件看不到css文件,因为相对链接现在正在寻找/articles/css/style.css。我发现了<base>
标记,并在header.php中设置了它,它解决了我所有的问题,除了锚链接(如果必须的话,我可以使用javascript来解决),但我仍然关心最佳实践是什么。我应该如何正确地做到这一点,而不必用一个巨大的php行为每个相对链接做准备,也不必使用javascript破解来使锚链接工作?
谢谢!
我最终在标题中使用了<base>
标记,然后在任何需要锚链接的地方,我都使用了类似的php:<a href="http://<?php echo $_SERVER[HTTP_HOST] . $_SERVER[REQUEST_URI];?>#">
这使得链接指向当前页面,末尾添加了#,因此与使用<a href="#">
相同
如果你认为我本可以做得更好,请告诉我!谢谢
我想你可以用"../"上一个目录,当前目录是"./"
因此,从root/article/article-1.php,您可以使用/css/style.css
<link href="../css/style.css">
在我看来,这种情况下的最佳实践是返回根目录,前提是您的项目位于服务器/Web空间的根目录中。
在链接的开头使用"/",这是一个绝对路径。
示例:/css/style.css实际上是根目录->css文件夹->style.css文件