your programing

ResolveUrl과 ResolveClientUrl의 차이점은 무엇입니까?

lovepro 2020. 12. 29. 08:05
반응형

ResolveUrl과 ResolveClientUrl의 차이점은 무엇입니까?


ASP.NET 파일에 CSS 및 Javascript를 추가하기 위해 ResolveUrl을 사용하고 있습니다.

하지만 일반적으로 ResolveClientUrl 옵션이 표시됩니다. 둘 다의 차이점은 무엇입니까?

ResolveClientUrl은 언제 사용해야합니까?


ResolveUrl은 루트에 상대적인 URL을 만듭니다.

ResolveClientUrl은 현재 페이지에 상대적인 URL을 생성합니다.

원하는 것을 사용할 수도 있지만 ResolveUrl이 더 일반적으로 사용됩니다.


다음은 간단한 예입니다.

//Returns: ../HomePage.aspx
String ClientURL = ResolveClientUrl("~/HomePage.aspx");

//Returns: /HomePage.aspx
String RegURL = ResolveUrl("~/HomePage.aspx");

//Returns: C:\inetpub\wwwroot\MyProject\HomePage.aspx
String ServerMappedPath = Server.MapPath("~/HomePage.aspx");

//Returns: ~/HomePage.aspx
String appRelVirtPath = AppRelativeVirtualPath;

//Returns: http://localhost:4913/
String baseUrl = Request.Url.GetLeftPart(UriPartial.Authority) + Request.ApplicationPath;

//Returns: "http://localhost:4913/HomePage.aspx"
String absUri = Request.Url.AbsoluteUri;

MSDN 문서에 따르면 :

ResolveClientUrl

브라우저에서 사용하기에 적합한 지정된 리소스에 대한 정규화 된 URL입니다.

ResolveClientUrl 메서드를 사용하여 클라이언트가 이미지 파일, 추가 페이지 링크 등과 같은 웹 서버의 리소스에 액세스하는 데 사용하기에 적합한 URL 문자열을 반환합니다.

ResolveUrl

변환 된 URL입니다.

relativeUrl 매개 변수에 절대 URL이 포함 된 경우 URL은 변경되지 않고 반환됩니다. relativeUrl 매개 변수에 상대 URL이 포함 된 경우 해당 URL은 현재 요청 경로에 올바른 상대 URL로 변경되어 브라우저가 URL을 확인할 수 있습니다.

예를 들어 다음 시나리오를 고려하십시오.

클라이언트가 연결된 이미지가있는 사용자 정의 컨트롤이 포함 된 ASP.NET 페이지를 요청했습니다.

ASP.NET 페이지는 /Store/page1.aspx에 있습니다.

사용자 정의 컨트롤은 /Store/UserControls/UC1.ascx에 있습니다.

이미지 파일은 /UserControls/Images/Image1.jpg에 있습니다.

사용자 정의 컨트롤이 이미지에 대한 상대 경로 (즉, /Store/UserControls/Images/Image1.jpg)를 ResolveUrl 메서드에 전달하면 메서드는 /Images/Image1.jpg 값을 반환합니다.

나는 이것이 그것을 아주 잘 설명한다고 생각합니다.


요컨대 :

Page.ResolveUrl(~): creates the URL from the root of app.

Page.ResolveClientUrl(~): creates the URL relative to the current page.(e.g: ../../..)

그러나 asp.net의 테스트에서 Page.ResolveUrl은 안정적인 출력으로 인해 더 좋고 상대적이지 않습니다.


Javascript 친화적 인 URL을 얻으려는 경우 Page.ResolveUrl을 사용하는 것이 좋습니다.

상위 페이지에서 iframe을 여는 것처럼 iframe src 속성에 전달되는 전체 URL이 필요합니다.

참조 URL : https://stackoverflow.com/questions/1874636/what-is-the-difference-between-resolveurl-and-resolveclienturl

반응형