2013-04-17 5 views
1

일부 HTML 코드에서이 양식의 배경 이미지 참조를 보았습니다.슬래시 뒤의 URL에 물결표 사용

<a style="background: url('/~/media/Images/Shared/Logos/logo.png')" href="/">Home</a> 

나는 원저자에게 물어볼 수있는 입장이 아니며 여기서 물결표가 어떻게 평가되는지 이해하지 못합니다.

URL 문자열이 시작되면 "url ('~/media/.....'"나는 미디어 사용자의 루트가됩니다. (모든 배포에서 해당 사용자를 생성해야합니다. 서버)하지만 물결의 앞/나를 혼란이있다. 난 그냥 홈 디렉토리 설명을 다시 가지고 있지만, 그렇게 될 나타나지 않습니다했던

모든 검색합니다.

[편집] 이것은 라이브 사이트의 일부이며, 로고가 올바르게 표시됩니다. 이유는 모르겠습니다.

[편집 2]이 사이트는 ASP.NET을 사용하여 제작되었습니다.

[편집 3] 위의 URL은 URL의 깨끗한 버전으로 사이트의보기/출처는 ASP 코드가 아닙니다.

[편집자 4] 호기심을 불러 일으킬 수도있는 분들을 위해 여기에 실제 작동하는 URL이 있습니다. 저는 같은 회사에서 근무하지만 다른 부서에서 근무하고 있으며, 일부 스타일링을 차용하고있는 Java EE에 내부 지원 도구를 구축하고 있습니다. 나는 "/ ~/...."을 보았고 그것이 효과가있는 좋은 이유를 생각할 수 없었다.

http://business.hibu.co.uk/~/media/Images/Shared/Logos/logo.png 
+0

http://stackoverflow.com/questions/6252471/what-is-the-use-of-tilde-in-url – j08691

+0

유닉스가 물결표를 사용하는 것과 아무 관련이 없습니다. 웹 루트를 서버의 루트 디렉토리로 설정하려면 꽤 우둔한 웹 관리자가 필요합니다. – JJJ

+1

어떤 서버 기술을 사용하고 있습니까? ASP에서.NET에서 일부 컨트롤의 경우 URL 시작 부분에 물결표를 사용하여 웹 응용 프로그램의 루트를 참조 할 수 있습니다. 하지만 나는 ASP.NET이 이렇게 중간에 그것을 허용 것이라고 생각하지 않습니다. 또한이 서버가 서버에서 작동하는 경우 브라우저에서 렌더링 될 때 다르게 렌더링됩니다. 페이지에서 소스를 보는 경우 물결표가 여전히 있습니까? –

답변

-1

로컬 컴퓨터 (홈 디렉토리를 의미)에서 발생했을 가능성이 큽니다. 자산 경로가 개발 시스템에서 복사 된 경우 원격 서버에서 제대로 해결할 수 없습니다.

그렇지 않으면 서버의 홈 디렉토리에 상대적인 경로입니다.

+0

이것은 라이브 사이트에서 실행 중입니다. 로고가 올바르게 표시됩니다. – Steve

3

ASP.NET에서 물음표는 응용 프로그램의 루트를 나타내며 반드시 웹 사이트의 루트 일 필요는 없습니다. 그러나 특정 상황 (서버 컨트롤, 데이터 바인딩 된 컨트롤 또는 머리 섹션의 태그가 script 또는 link과 같은 경우)에서만 사용할 수 있습니다.

일반 몸체의 a 태그를 처리 할 수 ​​없다고 생각합니다. ASP.NET에서 틸드가 어쨌든 문자열의 시작 부분을 제외하고 어디든 갈 수 있다고 생각하지 않습니다.

그래서 실제로는 ~이라는 실제 디렉토리가 있다고 생각합니다. Windows에서 물결표에는 특별한 의미가 없다고 생각합니다. 따라서 사용자의 홈 디렉토리 또는 그와 같은 것이 아닙니다. 일반 디렉토리의 펑키 한 이름입니다.

이는 브라우저에서 렌더링 년대 방법이라고 당신의 코멘트를 읽은 후 편집

, 그리고 그것을 일하고, 나는 당신의 웹 서버에 ~라는 실제 디렉토리가 있음을 거의 확실 해요. 어떤 종류의 URL 재 작성이 진행되고 있는지 확인하려면 web.config 또는 IIS 설정을 확인해야합니다.

+0

그게 내가 생각할 수있는 유일한 대답이지만, 사이트를 배포하는 것은 매우 이상한 방법입니다. – Steve

+0

동의합니다. 물결표에는 몇 가지 특별한 의미가있을 수 있기 때문에 결코 그런 식으로 실제 디렉토리 이름을 지정하지 않을 것입니다. –

+0

나는 분명히 대답 **을 ** 표기 했으므로, 그러나 우리가 어느 누구도 알지 못하는 또 다른 설명이있을 경우를 대비하여 잠시 동안 열어 두겠습니다. – Steve