首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >HTML大小写敏感问题

HTML大小写敏感问题
EN

Stack Overflow用户
提问于 2012-10-30 04:19:38
回答 4查看 3.9K关注 0票数 2

可能重复: HTML Case Sensitive Issues

我有这个:

代码语言:javascript
复制
<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。如果我把线改为

代码语言:javascript
复制
<li><a href="aBc.html">Test</a></li>

效果很好。

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

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-10-30 04:24:32

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

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

简而言之,您的where服务器运行在文件系统上,其中文件名区分大小写,因此abc.htmlaBc.html引用两个不同的文件。

票数 8
EN

Stack Overflow用户

发布于 2012-10-30 04:23:42

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

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

因此,在Windows下,假设aBc.htmlabc.html完全相同是正确的。

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

票数 1
EN

Stack Overflow用户

发布于 2012-10-30 07:23:54

HTML中的一些结构区分大小写,有些则不区分大小写,部分取决于HTML版本.href属性值在考虑的范围内总是区分大小写的.

href属性值的值被处理为URL (或者形式上是URI),并且URL是区分大小写的,除非指定的部分不区分大小写。在这里,该值被解析为一个绝对的URL,因此字符串abc.html成为路径部分,并且该部分不受区分大小写的限制。

然后,服务器对URL所做的操作将由服务器自行决定。它很可能将abc.htmlaBc.html (或abc.htmlfoobar )视为相同的资源。

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

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13132572

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档