【发布时间】:2011-07-02 23:29:47
【问题描述】:
我一直在阅读有关 web.config 文件中的 staticContent 元素的信息,但我在弄清楚 ASP.Net 究竟认为什么是静态内容时遇到了一些麻烦。我假设它将包含图像、js 文件、css 和静态 html 文件,但我似乎找不到任何明确说明这一点的文章。有没有人有详细解释这一点的文档链接?
【问题讨论】:
标签: asp.net web-config static-content
我一直在阅读有关 web.config 文件中的 staticContent 元素的信息,但我在弄清楚 ASP.Net 究竟认为什么是静态内容时遇到了一些麻烦。我假设它将包含图像、js 文件、css 和静态 html 文件,但我似乎找不到任何明确说明这一点的文章。有没有人有详细解释这一点的文档链接?
【问题讨论】:
标签: asp.net web-config static-content
据我了解,web.config 中的 staticContent 元素是您可以设置站点应如何缓存其静态资源的地方。
关于您可以在此处指定哪种内容的问题,您可以从缓存中受益的任何文件,即图像、视频等。
另外,只是提供一些我认为有用的链接:
How to configure static content cache per folder and extension in IIS7?
http://www.iis.net/ConfigReference/system.webServer/staticContent/clientCache
【讨论】:
我认为这可能是您缺少的信息 - Static Content MimeMap
【讨论】:
http://www.iis.net/configreference/system.webserver/staticcontent/mimemap 说,
<staticContent>元素的<mimeMap>元素包含在 IIS 7 的默认安装中。
我认为“静态”文件类型列表是在 the server's machine.config 中定义的和/或使用 web.config 文件覆盖的。
您可以在 IIS 管理器中选择“Mime 类型”来查看 MIME 类型列表...我看到其中大约 400 个,从 .323 和 .aac 到 .xslt 和 .zip,包括 @ 987654329@ 和.html 但不包括.aspx。
【讨论】:
虽然这个问题相当老了,我希望 Kiquenet 能整理出答案,但没有一个答案能真正回答这个问题,但我发现这篇文章正在寻找答案,我希望其他人也会这样做。本文回答了这个问题:
换句话说,静态文件是那些 IIS 没有特定处理程序的文件。即 .Net 框架 web.config 部分 httpHandlers 中列出的每种文件类型都不是静态的。
请看 Ben Swayne 最优秀的回答,引用:
您可以通过导航到您的网站然后单击“处理程序映射”来检查 IIS 中的文件处理程序列表。默认情况下,这些是从 .Net 基础 web.config 继承的,该基础 web.config 位于不同的位置,具体取决于您的 .Net 框架版本。
C:\Windows\Microsoft.NET\Framework\v2.0.50727\CONFIG\web.config C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config\web.config
如果所请求的文件尚未显式映射到另一个处理程序,则它属于一个捕获所有处理程序 (*) 作为最后一个选项 (System.Web.DefaultHttpHandler),它确定它是静态文件还是目录浏览要求。所以静态文件只是没有绑定到另一个处理程序的文件。
【讨论】: