【问题标题】:Best way to deal with relative paths/base tag处理相对路径/基本标签的最佳方法
【发布时间】:2013-12-06 06:37:12
【问题描述】:

好的,所以我遇到了嵌套 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>。在 article-1.php 里面我也有include "include/header.php"。

所以索引文件有效。但是 article-1 文件看不到 css 文件,因为相对链接现在正在寻找 /articles/css/style.css。我发现了<base> 标记,并将其设置在 header.php 中,它解决了我的所有问题,除了锚链接(如果我必须使用 javascript,我可以使用它),但我仍然担心最佳实践是什么。我应该如何正确地做到这一点,而不必在每个单独的相对链接前面加上一个巨大的 php 行,也不必使用 javascript hack 来使锚链接工作?

谢谢!

【问题讨论】:

    标签: php html relative-path


    【解决方案1】:

    我最终在标题中使用了 <base> 标记,然后在需要锚链接的地方我使用 php,如下所示:<a href="http://<?php echo $_SERVER[HTTP_HOST] . $_SERVER[REQUEST_URI];?>#">

    这会使链接转到当前页面,并在末尾添加#,因此与使用<a href="#">相同

    如果您认为我可以做得更好,请告诉我!谢谢!

    【讨论】:

      【解决方案2】:

      我想你可以用“../”上一个目录,当前目录是“./”

      所以从 root/articles/article-1.php,您可以使用 ../css/style.css 访问您的样式表

      <link href="../css/style.css">
      

      【讨论】:

        【解决方案3】:

        在我看来,这种情况的最佳做法是返回根目录,前提是您的项目位于服务器/网络空间的根目录中。

        在链接的开头使用“/”,这是一个绝对路径。

        示例:/css/style.css 实际上是根目录->css 文件夹->style.css 文件

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-11-30
          • 2012-07-16
          • 2023-04-02
          • 2020-01-28
          • 2018-01-22
          • 1970-01-01
          • 1970-01-01
          • 2021-09-07
          相关资源
          最近更新 更多