19. 절대 주소, 상대 주소의 사용에 대한 고찰. -php-

 

-불려 온 파일은 부른 화일의 위치에 있는 것처럼 취급된다.

root : r파일 - b파일을 부른다. ---(1)

aaa : a파일 - b파일을 부른다. ---(2)

bbb : b파일 - c파일을 부른다. ---(3)

ccc : c파일

 

디렉토리 aaa, bbb, cccroot 디렉토리 바로 아래에 있고, 각 디렉토리에 위와 같이 파일이 들어있다고 하자.

(1)의 경우 r파일에서 b파일을 부를 때 사용되는 경로는 "./bbb/B파일" 이다.

(2)의 경우 a파일에서 b파일을 부를 때 사용되는 경로는 "../bbb/B파일" 이다.

(3)의 경우 b파일에서 c파일을 부를 때 사용되는 경로는 "../ccc/c파일" 이다.

b파일은 r파일과 a파일 양쪽에서 부르고 있는데 여기서 문제가 있다.

(1)의 경우 불려 온 파일인 b파일은 r파일의 위치에 있는 것처럼 취급되어 b파일이 부르고 있는 c파일의 경로가 틀려진다

"./ccc/c파일"이 되어야 한다.

하지만 a파일에서 부른 경우엔 a파일 위치에서의 상대적 위치가 되므로 "../ccc/c화일"이 맞다.

이것은 php에서 css파일이나 js파일 또는 include문에서 상대경로를 지정할 때 문제가 될 수 있다.

 

절대 경로를 사용할 경우엔 Root 경로인 $_SERVER['HTTPS']를 명시해야하는지 아닌지를 잘 구분해야 한다

어떤 경우에는 프로그램내부에서 자동으로 붙여지는 경우도 있기 때문이다.

Posted by star story :

Snippet :: Code View :: "+location.href+'
'+b+"

");top.consoleRef.document.close()}$(".snippet-container").each(function(b){$(this).find("a.snippet-text").click(function(){var d=$(this).parents(".snippet-wrap").find(".snippet-formatted");var c=$(this).parents(".snippet-wrap").find(".snippet-textonly");d.toggle();c.toggle();if(c.is(":visible")){$(this).html("html")}else{$(this).html("text")}return false});$(this).find("a.snippet-window").click(function(){var c=$(this).parents(".snippet-wrap").find(".snippet-textonly").html();a(c);$(this).blur();return false})});$(".snippet-toggle").each(function(b){$(this).click(function(){$(this).parents(".snippet-container").find(".snippet-wrap").toggle()})})});