2010-01-22 8 views
3

자원이 다음 위치에 있다고 가정합니다. ~/Resources/R1.png 이 자원의 상대 URL은 현재 주소에 따라 다릅니다. 예를 들어현재 주소에 상대적인 경로를 얻는 가장 좋은 방법은 무엇입니까?

:
내가 www.foo.com/A/B/C/D.aspx에있어와 www.foo.com/A 다음 ~/Resources/R1.png의 현재 주소로 상대 경로는 ../../../Resources/R1.png

가 어떻게이 상대 경로를 얻을 수 이다, 가상 디렉터리를 포함하는 루트 경로 인 경우?

편집 :

은 내가 웹 페이지가 아닌 서버 경로에서 사용할 수있는 웹 경로를합니다.

+0

내가 사무실을 떠나 서둘러이었다 아이디어를 제공하십시오. 어떻게이를 성취 할 수 있습니까?하지만 당신이 옳습니다. –

답변

2

때 ResolveUrl ("~/자원/R1.png")를 '~'응용 프로그램의 루트를 나타내는 데 사용됩니다

하는 현재 페이지/컨트롤이 앉아 있습니다.

또는 자원이 현재 응용 프로그램 외부에 여전히 가상 디렉토리 계층 구조 내에서 발견되는 경우, 당신은 때 ResolveUrl ("/ 자원/R1.png")를 사용할 수 있습니다

+0

음, ../../xx 형식으로 변환되지 않습니다. 대신 브라우저가 해석 할 수있는/xx 형식으로 변환합니다. –

+0

그 대신 필요한 경우 ResolveClientUrl ("~/Resources/R1.png")을 사용하여 ../../xxx 양식을 얻을 수 있습니다. –

1
string path = Request.ApplicationPath + "/Resources/R1.png"; 
+0

이것은 ResolveUrl과 동일하며 내 문제를 해결합니다. –

0

가상 경로 가져 오기 :

Request.Path 
관련 문제