处理相对路径/基本标记的最佳方法

时间:2013-12-06 06:37:12

标签: php html relative-path

好的,所以我遇到嵌套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来使锚链接工作?

谢谢!

3 个答案:

答案 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文件