IIS 服务器阻止访问 .webp 文件

Posted

技术标签:

【中文标题】IIS 服务器阻止访问 .webp 文件【英文标题】:IIS server blocking access to .webp files 【发布时间】:2018-02-13 03:46:06 【问题描述】:

所以我正在尝试为在 IIS 上运行的 WordPress 网站添加 .webp 图像支持。

现在图像存在于服务器上并且文件名正确但是当我尝试通过浏览器中的 URL 地址加载图像时出现 404 错误。

404 - 找不到文件或目录。您正在寻找的资源 可能已被删除、名称已更改或暂时 不可用。

有人知道我该如何解决这个问题吗?

我尝试添加 <add extension=".webp" policy="CacheUntilChange" kernelCachePolicy="DontCache" /> 但这不起作用,因为它与缓存有关。

我是否可以允许访问某些文件类型?

我可能需要允许文件类型通过防火墙吗?

我对使用 IIS 还是很陌生,所以我有点迷茫。

干杯

【问题讨论】:

【参考方案1】:

您需要将此配置添加到您的 webconfig 文件中:

<configuration> 
    <system.webServer> 
        <staticContent> 
            <mimeMap fileExtension=".webp" mimeType="image/webp" /> 
        </staticContent> 
    </system.webServer> 
</configuration>

【讨论】:

注意,如果我将它上传到 ACTUAL IIS 服务器(不仅仅是我通过 Visual Studio 运行的 IIS Express 服务器),网站就会中断。它非常适合调试和测试,但不适用于生产。对于生产 IIS,请使用以下@Macster 的解决方案。【参考方案2】:

最简单的解决方案是在mime types 中添加文件扩展名.webp,如下所示:

    从 IIS 管理器中选择网站:

    为 Mime 类型添加文件扩展名:

【讨论】:

【参考方案3】:

好的,想通了。

我必须在 iis 管理器中允许 mime 类型。

https://technet.microsoft.com/en-us/library/cc725608(v=ws.10).aspx

【讨论】:

添加 mime 类型后可能需要进行 iisreset【参考方案4】:

当您运行或调试应用程序时,Webp 图像未显示。特别是在 IIS Express 和 IIS 中。对于 IIS,我们可以在应用程序配置中使用 Mime 类型,如前所述。但是对于 IIS express,即使您添加了 app.config,它也不会显示出来。只需按照此过程即可解决此问题。

    使用系统托盘中的图标打开 IIS Express 对话框。检查图像。 Open IIS Express from system tray

    在对话框中,选择网站。您可以在以下部分中查看相关详细信息。 IIS Express dialog box

    查看配置路径,它因您开发的每个应用或网站而异。单击该链接,您可以在 VS 工作室中打开配置文件。现在添加 webp mime 扩展代码以及其他图像类型。保存文件并关闭它。

现在,您可以在调试模式下在本地浏览中查看 webp 图像。问题已解决。

【讨论】:

在 IIS Express 上进行本地测试/调试的绝佳解决方案

以上是关于IIS 服务器阻止访问 .webp 文件的主要内容,如果未能解决你的问题,请参考以下文章

IIS配置webp后缀文件

IIS配置webp后缀文件

IIS配置webp后缀文件

如何阻止用户直接访问IIS中的网站上的文件

在 IIS 服务器上运行 bat 文件

如何阻止IIS SMTP服务器发送退回电子邮件?