2009-12-21 11 views
4

II7 및 Windows 2008 Server에서 실행되는 ASP.NET MVC 1.0 응용 프로그램 (.NET 3.5)이 있습니다. 응용 프로그램이 '통합 파이프 라인'모드로 배포됩니다. IIS 7에서 ASP.NET MVC의 정적 내용

는 Global.asax.cs 나는 추가 :

public void Application_EndRequest(Object sender, EventArgs e) { 
//print URL 
} 

방법은 호출되는 경우에도 정적 콘텐츠에 대한 (이미지, 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. " 

그래서의 Application_EndRequest()는 정적 콘텐츠를 호출 할 필요가?

브라우저가 정적 컨텐츠를 캐싱하는 방법을 보장하려면 어떻게해야합니까?

감사합니다.

답변

1

MVC에 도입 된 라우팅 기능으로 인해 모든 것이 이제 ASP.NET을 통해 처리되므로 모든 요청에 ​​대해 Application_EndRequest가 호출됩니다. 브라우저는 정적 또는 동적 콘텐츠의 차이를 볼 수 없으며 가능한 경우 및 HTTP 헤더에 따라 콘텐츠를 캐시하려고 시도합니다.

1

ASP MVC 기본 템플릿은 권장하지 않지만 사이트의 모든 정적 컨텐츠를 단일 디렉토리에 배치하는 것이 좋습니다. 그런 다음 해당 디렉터리에 대한 ASP 파이프 라인을 사용하지 않도록 설정하고 ASP.NET에 요청을 전혀 전달하지 않고 IIS가 콘텐츠를 제공 할 수있게 할 수 있습니다.

이 연습은 블로그 Steve SandersonKazi Manzur Rashid's에 대해 작성되었습니다. ASP.NET MVC in Action에서도 권장됩니다.

+1

감사합니다. 그러나 Steve Sanderson 블로그는 IIS6에 관한 것입니다. – dev

관련 문제