【问题标题】:"../ path" works rather than "../../"“../ path”有效,而不是“../../”
【发布时间】:2016-07-03 19:07:43
【问题描述】:

我想知道这怎么可能。

从技术上讲,我有一个 head.php 文件,其中包含所有样式表和 javascript:

head.php

<!--CLIENT-->

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">    
    <link rel="stylesheet" type="text/css" href="../css/jquery.dataTables.min.css">
    <link rel="stylesheet" type="text/css" href="../css/bootstrap.min.css">
    <script src="js/bootstrap.min.js"></script>
</head>

bootstrap.min.css 所在的文件是 2 个文件夹,我在某处读到“../”正在后退一步。所以我想知道为什么它仍然有效?

这里是路径信息:

C:\xampp\htdocs\renewSAD

-包括文件夹 client、css、fonts 和 js。

css 文件夹内是所有引导 css 文件。

`在客户端文件夹中 C:\xampp\htdocs\renewSAD\client

它包括另一个文件夹,即 head.php 因此,css 文件夹在 2 个文件夹之外。为什么单个 ../ 可以定位引导程序 css 的路径?

我问这个问题是因为我认为它将来可能会导致错误。

【问题讨论】:

  • 这可能与您可能包含/需要文件的“方式”有关。如果其中一个 PHP 文件包含一个将文件降低一级的文件,那么可能就是这样。几乎不可能回答,没有看到你的实际 php 文件是什么样的。
  • 您好@Fred-ii-我尝试将其全部删除并重新开始。发现和你说的一样。我的客户端文件夹中有一个 clientRegistration.php 文件,所以从技术上讲,client 文件夹里面是 includes 文件夹 & clientRegistration.php。 clientRegistration.php 包含 *includes 文件夹内的 head.php 文件。所以&lt;?php include 'includes/head.php';?&gt; 事实证明,当我包含另一个文件夹之外的文件时,它将继承包含它的文件的路径。我希望你明白我所说的。解释和英语不是我的强项:)
  • 你解释得很好 ;-) 这听起来像是我的继承。我发现包含文件而不是相对路径的一个好方法是在有疑问时使用完整的系统路径直接进入根/var/usr/public/(folders/sub-folders)/file(s)。使用 $_SERVER 超全局函数和其他函数的方法很少。
  • 很高兴我解释得很好:D。感谢弗雷德的建议:D

标签: php css twitter-bootstrap


【解决方案1】:

如果我对问题的理解正确,您的结构如下:

C:\xampp\htdocs\renewSAD
  - Client
    - Another folder
      - head.php
  - CSS
    - bootstrap.min.css
    - ...
  - Fonts
  - JS

您的index.php 是否有可能实际上位于客户端文件夹中,而head.php 只是包含在该文件中?

如果是这样,这是因为路径是相对于主脚本(而不是包含的脚本)的。您可以使用getcwd() 来验证当前目录。

【讨论】:

  • 完全正确:D。我忘了提到里面client folder 是包含head.php 和另一个文件夹(包含head.php)的文件。
猜你喜欢
  • 1970-01-01
  • 2017-08-14
  • 1970-01-01
  • 2012-04-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-23
相关资源
最近更新 更多