2012-04-26 2 views
1

wwwroot의 하위 폴더로 이동 한 MVC 응용 프로그램이 있는데이 하위 폴더는 IIS를 통해 응용 프로그램으로 만들어졌습니다. 내 로그인 페이지의 URL은 다음과 같이 보일 것이다 전에 반면, 그래서 :MVC 라우팅을 사용하여 IIS 하위 응용 프로그램을 처리하는 방법은 무엇입니까?

www.mydomain.com/application/ :

www.mydomain.com/login 그것은 지금과 같은

로그인

응용 프로그램이 제대로 작동하지만 응용 프로그램의 라우팅이나 링크에 영향을 미치지 않는 것 같습니다. 이하는 분명히 URL www.mydomain.com/content/images/myimage.png에서 이미지를 검색하려고으로

<img src="/content/images/myimage.png"/> 

: 그러나, 내가 그렇게 같은 이미지의 src의를 참조하고 문제를 일으키는 때 지금, 그러나

routes.MapRoute("Default", 
       "application/{controller}/{action}/{id}", 
       new { controller = "dashboard", action = "index", id = UrlParameter.Optional }); 

: 난 단지 URL의 일부로서 하위 폴더 설명하기 위해 수정 내가 시도 기본 경로를 사용하고 내 Global.asax 파일에서 404

을 반환 나는 루트 ur에 가려고합니다. l www.mydomain.com/application 방금 ​​디렉토리 목록을 얻었습니다! 컨트롤러 (예 : www.mydomain.com/application/dashboard)에 직접 연결하려고하면 404가 표시됩니다.

누구나 MVC 라우팅을 통해이 상황을 처리하는 방법을 알고 있습니까?

답변

4
  1. 라우팅을 변경할 필요가 없습니다. 진입 점에서 앱까지 작동합니다.
  2. @ Url.Content ("~/content/images/myimage.png")를 사용하십시오.

희망이 도움이 될 것입니다.

+0

예치 나는 Url.Content를 사용할 수 있습니다 알고 있지만 내 사이트가 큰 내가 가서 Url.Content를 사용하는 모든 이미지 참조를 변경하지 않으! – jcvandan

+1

T4 템플릿을 만들어서 업데이트 할 수 있습니다. =) http://www.hanselman.com/blog/T4TextTemplateTransformationToolkitCodeGenerationBestKeptVisualStudioSecret.aspx –

+0

T4 템플릿에 대해 잘 몰랐다. 유용하게 들리겠다. 체크 아웃하겠습니다. – jcvandan

0

이 하나를 시도 ...

routes.MapRoute("Application", 
       "application/{controller}/{action}/{id}", 
       new { controller = "dashboard", action = "index", id = UrlParameter.Optional }); 

routes.MapRoute("Default", 
       "{controller}/{action}/{id}", 
       new { controller = "dashboard", action = "index", id = UrlParameter.Optional }); 
+0

그 ' 정적 파일이 라우팅되지 않기 때문에이 시나리오에서는 작동하지 않습니다. StaticFileHandler (IHttpHandler)에 의해 처리됩니다. – Shelakel

+0

이것을 시도하면 모든 면도기 ActionLink가 ActionLink에 경로 값이 제공되지 않아도 'Application'으로 시작하는 앵커 URL을 사용합니다. – barrypicker

관련 문제