2010-08-20 6 views
2

VS2010에서 새 ASP.NET 웹 응용 프로그램을 만들고 IIS7에서 응용 프로그램으로 설정했습니다.응용 프로그램 - 상대 URL

관련성이 있지만 실제로 코드가 \ myserver \ projects \ epeui \ epe 폴더에 있습니다 (프로젝트 폴더가 기본 웹 사이트의 루트 임). 응용 프로그램은이 컴퓨터의 기본 웹 사이트 루트 인 http://myserver/epe/에서 중단됩니다. 그리고 IIS에서 응용 프로그램으로 구성됩니다.

일반적으로 응용 프로그램 루트와 관련된 URL을 사용했기 때문에 CSS 파일은/styles /에 있고 이미지는/images /에 있고 JavaScript 파일은/scripts /에 있습니다.

IIS에서 응용 프로그램을 구성한 경우 내 로고에 액세스하려면 응용 프로그램 상대 URL 인 /images/mylogo.png를 사용해야합니다.

그러나이 사이트에서는 작동하지 않습니다. 대신 부모 경로 (../images/mylogo.png) 또는 기본 웹 사이트 (/epe/images/mylogo.png)와 관련된 URL을 사용해야합니다. 이들 중 어느 것도 이식성의 이유로 적합하지 않습니다.

나는 또한 가상 경로에 가정으로 상대적 URL을 (예 : 응용 프로그램 루트)를 사용하는 물결표를 사용하여 시도했다

= ~/이미지/mylogo.png

나는이 천 일을 한 맹세 전에는 분명히 어딘가에 ...

IIS의 표준 응용 프로그램 인 /mypage.html에 대해 http://myserver/myapp/mypage.html을 참조해야하며 http://myserver/mypage.html이 아닌 것으로 확인해야 할 사람이 있습니까? /mypage.html 루트 http://myserver/mypage.html에 매핑 할 것입니다

답변

1

, 이것은 응용 프로그램 루트에 매핑하는 서버 측 컨트롤의 올바른 동작

~이다 (그래서 <asp:HyperLink NavigateUrl="~/mypage.html"...>http://myserver/myapp/mypage.html

I 매핑됩니다 과거에는 특히 CSS와 자바 스크립트 파일을 사용하는 경우 <%= Request.ApplicationPath %>/myPage.html을 사용해야했지만 때로는 global.asax.cs의 전역 변수로 정의하여 사용하는 것이 좋았습니다. 인스턴스의 Request.ApplicationPath는 "/ myapp"

나는 이것에 대해서 너무 많이 고심했다.