好的,所以我遇到嵌套php包含的问题,我想知道什么是最佳实践和易用性的良好折衷。
这是我的网站结构:
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"
。
因此索引文件有效。但是第1条文件无法看到css文件,因为相对链接现在正在寻找/articles/css/style.css。我发现了<base>
标签,并在header.php中设置了它,它修复了我的所有问题,除了锚链接(我可以使用javascript解决,如果我有),但我仍然关注最佳实践是什么。我应该如何正确地执行此操作,而无需使用庞大的php行预先添加每个相对链接,也无需使用javascript hack来使锚链接工作?
谢谢!
答案 0 :(得分:2)
我最终在标题中使用了<base>
标记,然后在我需要锚链接的任何地方,我都使用了PHP,如下所示:<a href="http://<?php echo $_SERVER[HTTP_HOST] . $_SERVER[REQUEST_URI];?>#">
这使得链接转到当前页面,并将#添加到结尾,因此它与使用<a href="#">
如果您认为我可以做得更好,请告诉我!谢谢!
答案 1 :(得分:0)
我认为你可以用“../”上一个目录,当前目录是“./"
所以从root / articles / article-1.php开始,您可以使用../ css / style.css
访问样式表<link href="../css/style.css">
答案 2 :(得分:0)
在我看来,这种情况的最佳做法是返回根目录,前提是您的项目位于服务器/网站空间的根目录中。
在链接的开头使用“/”,这是一个绝对路径。
示例:/css/style.css实际上是root-&gt; css文件夹 - &gt; style.css文件