2011-03-04 3 views
1

내 프로덕션 환경이 주 URL의 디렉터리에 있습니다 www.example.com/sample. 대부분의 내 URL은 ~을 사용하여 문제가 해결되므로 ~/default.aspxwww.example.com/sample/default.aspx으로 해결됩니다.URL 처리 올바르게 - 프로덕션 대 개발 (ASP.NET)

그러나 내 자바 스크립트 중 하나가 올바르게 프로덕션 환경에서로드 중입니다. 예를 들어 js/sample.js으로 설정된 스크립트 src가 있는데 ~/js/sample.js을 시도했지만 해결되지 않습니다. <script> 태그에서 runat="server"을 시도했지만 때때로 오류가 발생했습니다. 나는이 : 나는 디버깅하는 동안 다시로드를 강제로 파일 이름의 끝에 버전 코드를 태그하고

다음
<script runat="server" src="~/js/sample.js?<%= MyCode.VersionInfo.JSTag %>" type="text/javascript"></script> 

, 그러나 이것에 대해 불평 runat=server와 함께.

이 문제는 일반적인 문제이며이를 처리하기위한 표준 관용구가 있지만 찾을 수없는 것 같습니다. 누군가 나를 도울 수 있습니까? ~은 언제 어떻게 확장되며, 사람들은 이러한 유형의 것을 어떻게 처리합니까?

웹 사이트가 완전히 제작되면 대부분 하위 디렉토리없이 들어가기 때문에 체계적으로 처리해야합니다.

+0

다른 솔루션에서 제안한 'ResolveUrl' 구문을 사용하는 것이 유일한 해결책입니다. 나는 이것이 매우 슬프다는 것을 안다. 단지 추악하다 .--( – belugabob

답변

4

이미지는 JS/sample.js을 즉 :

<script type="text/javascript" src="<%= this.ResolveUrl("~/js/sample.js?" + MyCode.VersionInfo.JSTag) %>"></script> 

자세한 내용은 여기 here

0

그냥 JS, CSS에 대한 상대 경로를 사용하고 무엇을 당신이 찾고있는 것은

+0

-, lool!'~'의 주요 이점은 asp.net 엔진이 상대적 계산을 수행한다는 것이다. 확실히 올바른 방법이 아닙니다! –

0

제안이다 :

<script type="text/javascript" src="<% =HttpRuntime.AppDomainAppVirtualPath & "/js/sample.js"%>"></script> 

또한 경로가 발견 된 경우 이처럼 이전처럼 고소한다면 웹 응용 프로그램을 Cassini (내장 웹 서버) 아래 가상 디렉터리 아래에서 실행하도록 설정할 수 있습니다.

웹 프로젝트를 마우스 오른쪽 단추로 클릭하고 속성을 선택하고 웹을 선택한 다음 가상 경로를 입력하십시오. /견본/.

관련 문제