我在 web.config 文件中添加了以下内容,但这似乎被 Visual Studio 2010 内置的开发服务器忽略了。有谁知道如何更改开发服务器中的 MIME 类型?
<system.webServer>
<validation validateIntegratedModeConfiguration="false"/>
<modules runAllManagedModulesForAllRequests="true"/>
<staticContent>
<mimeMap fileExtension=".mp4" mimeType="video/mp4" />
<mimeMap fileExtension=".ogg" mimeType="audio/ogg" />
<mimeMap fileExtension=".oga" mimeType="audio/ogg" />
<mimeMap fileExtension=".ogv" mimeType="video/ogg" />
<mimeMap fileExtension=".webm" mimeType="video/webm" />
</staticContent>
</system.webServer>
最佳答案
Visual Studio (Cassini) 中的内置开发 Web 服务器不了解 <system.webServer>
,只有 IIS7.x 或 IIS7.5 Express 才会使用这些设置。
Visual Studio 开发 Web 服务器中的静态文件内容类型也是硬编码的。
来自 Microsoft.VisualStudio.WebHost.Connection
(使用.NET Reflector反汇编):
private static string MakeContentTypeHeader(string fileName)
{
string str = null;
FileInfo info = new FileInfo(fileName);
switch (info.Extension.ToLowerInvariant())
{
case ".bmp":
str = "image/bmp";
break;
case ".css":
str = "text/css";
break;
case ".gif":
str = "image/gif";
break;
case ".ico":
str = "image/x-icon";
break;
case ".htm":
case ".html":
str = "text/html";
break;
case ".jpe":
case ".jpeg":
case ".jpg":
str = "image/jpeg";
break;
case ".js":
str = "application/x-javascript";
break;
}
if (str == null)
{
return null;
}
return ("Content-Type: " + str + "\r\n");
}
说实话,随着 IIS7.5 Express 的出现,我不明白您为什么要使用内置 Web 服务器。当涉及到生产服务器上的部署时间时,Cassini 可能会造成如此多的困惑,因为它与真正的交易(安全性、配置等)完全不同,而如果您可以让您的站点在 IIS7.5 Express 上运行,那么就会有相当高的成本。部署到生产 IIS7.5 服务器上“正常工作”的可能性。
如果 Microsoft 从下一版本的 Visual Studio 中删除 Cassini 服务器,我不会感到惊讶,因为使用 IIS7.5 Express 运行起来非常容易。
关于visual-studio-2010 - 使用 ASP.NET 开发服务器设置 MIME 类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5924647/