c# - Webp 图像未通过 ASP.NET mvc 在 Google Chrome 上显示
问题描述
我一直在尝试在我的网站上使用 Webp 图像,但是它们会在所有浏览器上显示为损坏的图像。
我已经尝试了dejanstojanovic的解决方案(我没有完全了解那里发生了什么,尽管我确实知道它正在检查浏览器是否与 webp 兼容,然后发送 webp 版本,如果是,它发送了 png 或 jpeg版本)但是,那没有用。同样,我尝试了deanhume的解决方案,但同样,这也不起作用。两个代码都返回了一个 webp 文件,应该由 chrome 支持,但是页面上有一个损坏的图像。我通过将 png 文件和 webp 文件放在同一个文件夹中并同时显示它们来检查以确保它不是路径的错误。png 文件完美运行,但是缺少 webp 文件。此外,如果我使用原始 HTML,webp 文件也可以工作,只是不能使用 ASP.NET。
_layout.cshtml
<h5 class="footer-header">Contact Info</h5>
<p class="footer-text">Contact us if you want a custom made dress, or just want to know where your package might be.</p>
<div class="row">
<div class="col-md-1">
<img style="height:50px; width:50px" src="~/Images/LocationPin100h.webp" />
<img style="height:50px; width:50px" src="~/Images/LocationPin100h.png" />
</div>
</div>
视图文件夹中的 web.config
<system.webServer>
<handlers>
<remove name="BlockViewHandler"/>
<add name="BlockViewHandler" path="*" verb="*" preCondition="integratedMode" type="System.Web.HttpNotFoundHandler" />
<remove name="WebPHandler" />
<add name="WebPHandler" type="Web.Images.WebP.RequestHandler, Web.Images.WebP" path="*.webp" verb="GET" />
</handlers>
<staticContent>
<mimeMap fileExtension=".webp" mimeType="image/webp" />
</staticContent>
</system.webServer>
它在页面上的外观: https ://ibb.co/QjJkqv7
解决方案
我已经想通了。有两个 Web.config 文件。一个位于项目根文件夹中,一个位于视图文件夹中。我不得不补充:
<system.webServer>
<staticContent>
<mimeMap fileExtension=".webp" mimeType="image/webp" />
</staticContent>
</system.webServer>
进入位于根文件夹中的 web.config 文件,而不是像我之前所做的那样位于 views 文件夹中的文件。
推荐阅读
- azure - 将新块上传到现有 Azure BlockBlob 时,块 ID 的最大长度是多少
- swiftui - 如何在 SwiftUI 中使 ViewModel 实例处于活动状态?
- flutter - 未处理的异常:状态不佳:调用关闭后无法添加新事件?
- android - 从 APK 运行时不显示图像
- nsis - 如何使用 NSIS 在卸载期间保存日志
- python - 使用 cmaps 进行散点图
- c# - win2D CanvasControl DrawImage() 通过错误“值不在预期范围内”?
- r - 如何使用geom将三个汇总数据点添加到ggplot而不必具有相同的数据大小?
- python - 如何引用在函数中初始化的列表?(Python)
- docker - 理解 docker create 命令行参数