因此,我有一个具有 2 个主机头的站点:
header1.example.com
header2.example.com
在此站点中,我有一个名为 Foo 的虚拟目录,它有多个子目录 1、2、3 和 4,这些子目录包含各种样式表。页面通过/Foo/1/Style.css
和动态引用这些样式表/Foo/2/Style.css
。
IE
http://header1.example.com/SomePageThatUsesFoo1Style.aspx
http://header1.example.com/SomePageThatUsesFoo2Style.aspx
当我去时,http://header1.example.com/SomePageThatUsesFoo2Style.aspx
我得到了 404 尝试获取/Foo/2/Style.css
。
该文件绝对 100% 存在于正确的目录中,并且权限正确。
有趣的是,如果我去,http://header1.example.com/SomePageThatUsesFoo1Style.aspx
它工作得很好。另外,如果我去http://header2.SomePageThatUsesFoo2Style.aspx
或,http://header2.example.com/SomePageThatUsesFoo1Style.aspx
它工作得很好。
是否有人见过这种奇怪的问题,即 1 个特定的主机头把事情搞砸了?
我还要补充一点,只是为了好玩,我从头开始创建了一个全新的网站,使用了新的主机头 ( header3.example.com
),一切正常。我停止了旧网站,并将 添加header1
到header2
新网站,但出现了同样的错误。
注意:我尝试使用 Microsoft Network Monitor 3.4 来捕获数据包。我访问了网站上的几个页面,这些页面都出现了上述情况。对捕获应用了过滤器对于任何 HTTP 状态代码 >= 400没有任何结果。当我从我的桌面使用 Fiddler 访问我的网站时,Fiddler 也显示 404。
有什么想法吗?
答案1
通过在服务器上运行数据包捕获来观察实际的请求和响应,我很幸运地追踪了 404 错误。
在捕获中,您应该能够看到生成 404 的实际请求和响应。我通常会键入请求以查看请求的具体内容。当遇到 404 时,您应该能够看到请求的实际 URL,然后您可以验证该 URL 是否有效。