您收到 404 错误,因为没有映射到路径的特定托管处理程序*.png
在 IIS 配置中。所以所有请求Image/*.png
路径被拦截StaticFile
模块(StaticFileModule, DefaultDocumentModule, DirectoryListingModule
)并且这些模块找不到请求的文件。
您可以通过在以下位置配置您的应用程序来解决此问题web.config
.
第一个选项是添加runAllManagedModulesForAllRequests="true"
归因于configuration/system.webServer/modules
元素。它应该看起来像这样:
<modules runAllManagedModulesForAllRequests="true" />
NOTE:但我强烈建议不要这样做。阅读更多关于可能的性能问题 http://www.britishdeveloper.co.uk/2010/06/dont-use-modules-runallmanagedmodulesfo.html.
So 第二个(也是更好的)选项是注册 ASP.NET ISAPI 来处理您的请求Image/*.png
path:
<system.webServer>
<handlers>
<add name="ImageMVCHandler-ISAPI-4.0_32bit" path="image/*.png" verb="GET,HEAD" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" />
<add name="ImageMVCHandler-ISAPI-4.0_64bit" path="image/*.png" verb="GET,HEAD" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" />
<add name="ImageMVCHandler-Integrated-4.0" path="image/*.png" verb="GET,HEAD" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
</handlers>
</system.webServer>