2011-10-31 2 views
0

나는 이것을 묻는 멍청이가된다고 느낀다. 그러나 나는 그것을 이해할 수 없다. 나는 당신의 사이트의 루트로부터 상대 경로를 사용한다고 말하는 몇몇 게시물 (here's one)을 발견했다. /, 예와 경로를 시작합니다사이트 루트에서 상대 경로

<img src="/images/img1.jpg" /> 

내 파일 HIER을. 나는 위와 같이, 그것은 index.aspx 또는에서 Test.aspx 중 하나에서 작동하지 않습니다,하지만 난 /을 제거 할 때, 그것은 index.aspx를 위해 작동 src 경로를 사용할 때 이제

-root 
    -images 
    -css 
    -index.aspx 
    -subFolder 
    -test.aspx 

것 같습니다. test.aspx에서 ../images/img1.jpg을 사용했는데 작동합니다. 뭐라 구요? 위의 예제가 작동하지 않는 이유는 무엇입니까?

+0

Visual Studio에서 가져 왔습니까? 아니면 실제로 배포 했습니까? –

+0

프로젝트가 VS –

+0

을 통해 로컬로 실행되는 경우 웹 브라우저를 실행할 때 URL이 어떻게 표시됩니까? 나는 다른 것을 생각하고 있을지도 모르지만 때로는 때때로 VS가 여분의 디렉토리를 삽입하는 것을 기억합니다. 나에게 맞는 것. –

답변

1

사이트가 가상 디렉터리에 아마, 그래서이 "/"(어떤 웹 서버 또는)을보고 IIS로 실제 웹 루트를 말한다 - 어쩌면 폴더 당신의 '루트'폴더

위.

+0

고마워, 그게 다야. 왜 그랬을까요? 위의 폴더는 모든 VS2008 프로젝트가있는'Websites'입니다. 즉, 서버에 배포 할 때 모든 경로를 변경해야합니다. VS에 '루트'폴더를 구성 할 수있는 방법이 있는지 알고 계십니까? –

+0

VS에서 사이트를 실행하지 않기 때문에 실제로 알지 못합니다. 그러나 나는 그렇게 생각하지 않는다. XP에서 IIS 5를 사용하므로 루트 (또는 '기본') 사이트가 하나뿐입니다. 다른 것은 가상이어야합니다. 실제 웹 서버를 사용하는 프로덕션 환경에서 작동하지 않기 때문에 짜증이납니다. 나는 'rootFolder'문자열을 메모리에 유지하는데, 나는 그곳에 전치를 둔다. 값은 dev의 경우 '/ root'이고 생산의 경우 '/'입니다. 고통이 있지만 작동합니다. – Ray

+0

아, 이제 가상 디렉터리에 대해 gotchya .. 실제로 '루트'의 부모 폴더로 이동하지 않습니다. 솔루션 탐색기에서 웹 사이트를 선택하고 속성 패널에서'가상 경로 '를'/'로 변경하여 루트를 변경할 수있었습니다 :) 다시 한번 감사드립니다! –

1

상대 경로는 위치를 기반으로 디렉토리를 가로 지르기 때문에 작동합니다. 따라서 index.aspx의 경우 이미지 폴더로 이동하여 img1.jpg를 가져와야합니다. test.aspx의 경우 한 단계 위로 올라야합니다. 다음 이미지 폴더에 넣고 img1.jpg를 가져옵니다.

절대 경로는 IIS 설정에 따라 응용 프로그램을 설치 한 위치를 기준으로합니다. 이 폴더에서이 파일을 테스트하는 경우 절대 경로에 루트 폴더가 있어야합니다. /root/images/img1.jpg 그리고 같은 절대 경로를 사용하여 test와 index 모두에서 작동합니다.