sourcecode

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

codebag 2023. 6. 17. 09: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 문서에 따르면:

클라이언트 URL 확인

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

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

URL 확인

변환된 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 에서 제 테스트에서 페이지. 페이지.ResolveUrl은 출력이 안정적이고 상대적이지 않기 때문에 더 좋습니다.

페이지 사용.Javascript에 친숙한 Url을 얻으려는 경우 ResolveUrl이 더 좋습니다.

상위 페이지에서 iframe을 여는 경우와 마찬가지로 iframe src 속성으로 전달되는 전체 URL이 필요합니다.

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

반응형