【问题标题】:Why do ../ and ../../ finding the same file?为什么 ../ 和 ../../ 会找到同一个文件?
【发布时间】:2016-05-09 09:45:59
【问题描述】:

这是一个学术问题,因为我基本上有两种工作方式,但肯定会失败。不? (抱歉,我不知道为什么,但我总是在路径中挣扎,这让我很困惑。)

我刚刚将三个部分的 HTML 从主文件中移出,现在正在使用包含。

现在的结构是:

root - vendor - datepicker - dist -etc- datepicker.css
     - beta   - main.php
              - static - date.inc

在我以前的main.php文件中

    <link rel="stylesheet" href="../vendor/
    bootstrap-datepicker/dist/css/bootstrap-datepicker3.min.css">

当我将链接向上移动到static 目录中的.inc 文件(上一层)时,我想我应该添加一个额外的../,但不确定是否会在新文件中调用css或在调用包含的main.php 中。所以我都测试了

<link rel="stylesheet" href="../vendor/
bootstrap-datepicker/dist/css/bootstrap-datepicker3.min.css">

<link rel="stylesheet" href="../../vendor/
bootstrap-datepicker/dist/css/bootstrap-datepicker3.min.css">

两者都有效。我在 chrome 中进行了检查,然后尝试了../../../,效果也很好。

我认为../的目录形式意味着比当前级别低一级。

引用我刚刚看过的页面:

以“../”开头的目录向后移动一个目录并从那里开始

从“../../”开始向后移动两个目录并从那里开始(等等......)

我意识到这是一个白痴问题,我知道我必须在某个阶段整理出正确的文档路径,但这让我完全糊涂了。

【问题讨论】:

  • 避免混淆 - 使用 /vendor,它将相对于文档根目录起作用。如果您使用相对 URI,移动文件可能会破坏您的网站。
  • 嗯,不应该。 Chrome 的开发者控制台的网络标签说明了什么(您可能需要清除网络标签的结果并重新加载页面以获得准确的结果)?
  • 您使用的是什么网络服务器?我的想法是你的答案就在那里。 Web 服务器通常会同时从多个目录提供服务,这就是您尝试的所有变体都有效的原因。
  • 使用 Xampp。我第一次真正使用了网络选项卡(感谢你把我送到那里)。我第一次看到两个 CSS 都加倍了一个红色,但从那以后每次(甚至禁用缓存)它们都正常显示。我很确定@constnt 在下面是正确的。感谢人们的思想。

标签: css path directory subdirectory


【解决方案1】:

您查看的页面是正确的 ./ 表示从当前工作目录开始,../ 表示向上一个目录,../../ 向上 2 个目录等等.. 但是如果向上 1 个目录会发生什么你的根文件夹,你做了一个 ../../?答案是你仍然在根目录中,你只能走这么远。这正是发生在你身上的事情,检查你的结构,“root - vendor - datepicker”如果你愿意,我可以进一步详细说明。我希望这会有所帮助。

【讨论】:

  • 啊哈——现在说得通了。从来没想过。早上会仔细检查,但看起来是正确的....但只有当 CSS url 是从 ORIGINAL main.php 提供的(我不确定但我现在是)。所以CSS是在include之后评估的,我认为这是合乎逻辑的。 90% 肯定你应该得到“答案”,但我太累了,我会等到早上签到后再给你大奖。但谢谢你。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-11-20
  • 1970-01-01
  • 2019-05-04
  • 2022-01-05
  • 2021-10-20
  • 1970-01-01
  • 2011-08-03
相关资源
最近更新 更多