我有ASP.NET MVC 1.0应用程序(.NET 3.5)在II7和Windows2008Server上运行。该应用程序以“集成管道”模式部署。
在Global.asax.cs中,我添加了:
public void Application_EndRequest(Object sender, EventArgs e) {
//print URL
}即使对于/Content和/Scripts文件夹中的静态内容(图像、css、js),也会调用该方法。是对的吗?
MSDN (http://msdn.microsoft.com/en-us/library/bb470252.aspx)说:
"The Execute handler stage, where the handler (a module scoped to a URL) is invoked to construct the response. For .aspx files, the PageHandlerFactory handler is used to respond to the request.
For static files, the native-code StaticFileModule module responds to the request. "因此,静态内容应该调用()吗?
如何确保浏览器缓存静态内容?
谢谢。
发布于 2009-12-21 19:46:59
由于MVC引入了路由功能,所以现在一切都通过ASP.NET来处理,因此将为每个请求调用Application_EndRequest。浏览器无法看到静态内容和动态内容之间的区别,如果可能的话,将尝试缓存内容,并取决于HTTP报头。
发布于 2009-12-21 20:20:01
尽管ASP.MVC默认模板并不鼓励这种做法,但我认为将站点的所有静态内容放在一个目录中将成为一种推荐的做法。然后,您可以禁用上述目录的ASP管道,并允许IIS在不将请求传递给ASP.NET的情况下提供内容。
这个实践已经在史蒂夫·桑德森和Kazi Manzur Rashid's博客上写过了。它在ASP.NET MVC在行动中中也是推荐的。
https://stackoverflow.com/questions/1942152
复制相似问题