为啥我的图片在以前工作的网站中消失了 (404)?
Posted
技术标签:
【中文标题】为啥我的图片在以前工作的网站中消失了 (404)?【英文标题】:Why have my pictures disappeared (404) in a previously working website?为什么我的图片在以前工作的网站中消失了 (404)? 【发布时间】:2021-03-22 06:21:34 【问题描述】:大约一年半前,我创建了一个 IIS 网站,其中包含各种 aspx/asp 选项卡页面上的大量图片。我的开发 PC 是 Windows 8.1 Pro,带有 IIS 版本 8.5.9600.16384 网站。该网站是使用 Visual Studio 2012 开发的。该网站是在同一台 Windows PC 上发布的。
然后将发布的网站复制到 IIS 版本 8.5.9600.16384 网络上的 Window Server 2012R2 上并且运行良好。渐渐地,搜索引擎机器人找到了该网站,一切都很好。
这周我去对网站进行一些更新,发现没有一张图片可以工作。他们都返回一个 404 html 代码。当我从 IIS 中单独查看 .jpg 文件时,Firefox 返回“无法显示,因为它包含错误”。 Chrome 和 Edge 都说找不到该文件。如果我从 Windows 文件资源管理器查看这些文件,它们看起来很好。
所以我删除了服务器上的文件,然后从我的开发 PC 上复制了发布的网站。还是没有图片。
我在同一台服务器上有另一个类似的 Web 应用程序,因此将其中一个 jpg 文件移动到该目录并尝试通过 IIS 查看它 - 仍然是 404。我从另一个网站复制了一张图片到我的“损坏”目录和其他图片可通过 IIS 查看。所有这些图片都使用 Photoshop 7.0 以相同的方式进行了缩小。
我回到我的开发 PC 并通过 IIS 查看原始网站。图片是可见的,所以我重新发布了网站,将其复制到服务器 - 没有图片。
然后我找到了原始图片(未缩小)并将其移至服务器。还是 404。
我的问题似乎不是权限问题,因为我可以查看从另一个网站复制到该目录的图片。
该网站已经运行了一年多,但现在图片返回 404。
图片可以在开发PC上使用IIS查看,但是发布后复制网站到服务器就不行了。
另一个网站具有基本相同的代码并以相同的方式缩小图片显示图片正常。
我真的很困惑,很想听听您对我的问题的一些想法。感谢您抽出宝贵时间阅读本文。
【问题讨论】:
您是否在查看页面时尝试在浏览器中按 ctrl-F5? 项目部署到IIS的目录结构是什么?您使用的是 http 还是 https? 【参考方案1】:我总是从缺少图像开始的第一个地方是查看源代码并确保图像的路径实际上是我认为的。
您能做点什么,使路径现在是相对于机器的文件结构而不是相对于站点构建的吗?这可能会导致在本地找到图像,而不是在您的服务器上。
如果您包含 URL 以便我们检查所显示的页面,可能会更容易让别人了解。
【讨论】:
如果我尝试直接从 IIS 浏览到 .jpg 文件(不使用 webcode 代码),我仍然会收到 404 错误。 VintageTrainsToysBooks.rohland.org 我没有收到有评论的邮件,或者我会早点重新访问。我点击了链接,到处都能看到图片,所以我认为您发现问题了吗? 是的,我的驱动程序错误。我发布了解决方案 - 这是我造成的请求过滤问题。【参考方案2】:我很确定我发现了问题,但它会导致其他问题。
我缩短了文件名,现在我可以通过 IIS 浏览它。
所以这是我目前的问题:
为什么图片原来可以浏览,现在不行了?关于可接受的文件长度是否有某种互联网变化?或者可能是某种导致此更改的 Server 2012R2 更新?
为什么这些图片可以在我的 Windows 8.1 PC 上通过 IIS 浏览,但不能在 Server 2012R2 上浏览?我也可以在 Windows 8.1 上打开网站并查看所有图片。
很高兴解决了一个问题,但如果有人有任何建议,我仍然想知道原因。
【讨论】:
【参考方案3】:我终于弄清楚为什么我的照片消失了。是的,重命名我的 .jpg 文件确实解决了问题,但这不是原因。问题是我已将 /2018、/2019 和 /2020 添加到我的 IIS 请求过滤被拒绝。我所有的图片文件都有日期。当我重命名/缩短文件名时,我删除了 /year.呸!我做的蠢事!这也解释了为什么我可以在我的开发 PC 而不是服务器上查看这些网页 - 没有请求过滤。希望我的错误可以帮助某人。
【讨论】:
以上是关于为啥我的图片在以前工作的网站中消失了 (404)?的主要内容,如果未能解决你的问题,请参考以下文章
为啥分页不起作用并在 wordpress 网站上出现 404 错误?
为啥我的IE在输入格中随便输入啥都是404页面如:中国,百度。360浏览器确没问题. 求高人解决 .