【问题标题】:HTML case sensitive issue [duplicate]HTML区分大小写的问题[重复]
【发布时间】:2012-10-19 09:55:25
【问题描述】:

可能重复:
HTML Case Sensitive Issues

我有这个:

<div class="menuHolder">
  <nav class="menu">
    <ul id="menu">
      <li class="with_ul"><a id="panorama"><span class="overPlane"></span><span class="mText">panorama</span></a>
        <ul class="submenu_1">
          <li><a href="abc.html">Test</a></li>
          <li><a href="#!/pageMore">Profile</a></li>
          <li><a href="#!/pageMore">History</a></li>
        </ul>
      </li>
    </ul>
  </nav>
</div>

我已经有一个名为 aBc.html 的文件

当我点击测试时,我得到一个 404。如果我将行更改为

<li><a href="aBc.html">Test</a></li>

效果很好。

我知道 HTML 不区分大小写,但是为什么会这样呢?我做错什么了吗?

【问题讨论】:

    标签: html


    【解决方案1】:

    URL 在域名之后区分大小写。 example.comEXAMPLE.COM 都解析到相同的地址,但域名后面的任何内容都区分大小写。

    现在是文件系统。 Windows 使用 NTFS,不区分大小写,所以abc.htmlaBc.html 指的是同一个文件。大多数 Linux 发行版使用 EXT4,它区分大小写,因此 abc.htmlaBc.html 是两个不同的文件。

    简而言之,您的网络服务器在文件名区分大小写的文件系统上运行,因此abc.htmlaBc.html 指的是两个不同的文件。

    【讨论】:

    • 这仅适用于在类 UNIX 操作系统上运行的 Web 服务器,不适用于 Windows。
    【解决方案2】:

    在类 UNIX 平台上,文件名区分大小写,只有 Windows 不区分大小写。这实际上与 HTML 不区分大小写无关。

    但请注意,对于 Windows 上的 IIS,虚拟路径区分大小写,但不区分实际文件路径。

    所以在 Windows 下,假设 aBc.htmlabc.html 是完全相同的文件是正确的。

    因此,出于兼容性原因,应始终将 HTML 中路径的大小写与文件系统上的路径匹配。

    【讨论】:

    • 我很确定它们在 Windows 上也是区分大小写的。据我记得,只有 FAT 不保留文件名大小写。
    • 我 100% 肯定 Windows 不区分大小写。
    • 我猜你是对的!我从来不知道。
    【解决方案3】:

    HTML 中的一些结构区分大小写,而另一些则不区分大小写,部分取决于 HTML 版本。就 HTML 而言,href 属性值始终区分大小写。

    href 属性值的值作为 URL(或正式的 URI)处理,并且 URL 区分大小写,但指定为不区分大小写的部分除外。在这里,值被解析为绝对 URL,因此字符串 abc.html 成为路径部分,并且该部分不区分大小写。

    服务器 对 URL 的处理由其自行决定。它很可能将abc.htmlaBc.html(或abc.htmlfoobar,就此而言)视为相同的资源。

    与流行的看法相反,URL 不是文件名,服务器可以用它们来做很多事情,而不是简单地将它们映射到文件名。在服务器中使用某些重写规则使路径部分不区分大小写是很常见的。

    但是,如果服务器正在运行,例如,在 Linux 上具有默认设置的开箱即用版本的 Apache,这是一种相当常见的设置,那么路径部分会以简单的方式映射到文件名,并且在 Linux 文件系统中,这些名称区分大小写。

    【讨论】:

      【解决方案4】:

      所以,基本答案是:如果您托管在基于 UNIX 的平台上,这很重要。忠告:用小写字母命名所有内容,这会让你的生活变得更轻松

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-11-06
        • 2010-12-18
        • 1970-01-01
        • 1970-01-01
        • 2019-12-07
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多