2013-09-27 1 views
1

내 프로젝트 디렉토리 구조의 index.php에서문서 루트와 관련된 모든 경로를 어떻게 만들 수 있습니까?

/admin 
    L index.php 
/includes 
    L scripts.php 
    L common.php 
/css 
/js 
index.php 
header.php 
footer.php 
... 

내가 그런 것처럼/CSS 디렉토리에서 다양한 CSS 파일에 대한 참조를 포함하는 /includes/scripts.php 포함되어 있습니다 :

<link rel="stylesheet" type="text/css" href="css/jquery.alerts.css" /> 
<link rel="stylesheet" type="text/css" href="css/style.css" /> 

문서 루트에서 /includes/scripts.php를 포함 할 때 모든 것이 잘 작동하지만 다른 dir, 즉/admin 내부에서 scripts.php를 포함하면 경로가 더 이상 유효하지 않으며 모든 파일이 포함됩니다 참조가 실패합니다. 프로젝트 루트에서 문서 루트에 관계없이 모든 경로를 상대 경로로 만들려면 어떻게해야합니까?

+1

로컬 절대 경로 만 사용하십시오. '/ admin/index.php'. 그것은 사이트의 문서 루트를 기반으로합니다. –

답변

2

사용 <base href="/"/>

체크 자세한 내용은이 질문 : Is it recommended to use the base html tag

또는 수동으로이 URL은 웹에서 읽기 전에 /css/style.css

+2

w3schools는 틀리며 오해하기 쉬운 사이트입니다. 어떤 종류의 언어에 대한 참조로 사용해서는 안됩니다. PHP의 경우 [PHP Manual] (http://php.net)이 있으며, JavaScript의 경우 [Mozilla Developer Network (또는 MDN)] (https://developer.mozilla.org/)가 있습니다. w3school을 사용하지 않아야하는 이유를 이해하려면 http://w3fools.com을 참조하십시오. –

+0

감사합니다! 내 대답을 – adamziel

+0

업데이트했습니다. 몇 가지 가상 인터넷 포인트가! –

2
<link rel="stylesheet" type="text/css" href="/css/jquery.alerts.css" /> 

슬래시를 추가처럼 뿌리 상대에 URL을 재 작업 뿌리. 문서 루트와 웹 루트에는 차이점이 있습니다. 문서 루트는 다음과 같이 해결할 수 있습니다 /home/sites/www/yourdomain.com/

Adam의 대답은 더 정확하게 할 수 있지만 일반적으로 웹 루트가 웹 루트와 관련이 없도록 작성하는 이유는 무엇입니까? 그것은 당신의 문제는 다른 방법으로

주위에 작업을 통해 표준 관행을 사용하여 해결할 수있는 근본적인 조직 오류의 더 것 같다, 당신은 기본 URL 변수를 정의하고 이러한 링크 쓰는 데 사용할 수 있습니다 :

<?php 
$base_url = 'http://www.yoursite.com/'; 
// $base_url = 'http://dev.yoursite.com/'; if you work locally and have defined this in your vhosts file 
?> 

<link rel="stylesheet" type="text/css" href="<?php echo $base_url; ?>css/jquery.alerts.css" /> 
+0

나는 당신의 제안을 이미 시도했지만 실패했다. CSS 파일 경로가 잘못되었습니다. – bikey77

+0

당신이 설명하는 프로젝트 디렉토리 구조가 웹 루트에 실제로없는 경우에만 실패 할 수 있습니다. 아담이 말했듯이, 다른 것이 당신의베이스를 다시 쓰고 있다면. - print_r ($ _ SERVER [ 'DOCUMENT_ROOT'])' –

+0

과 같은 것을 할 때 당신은 무엇을 얻는가? 내 프로젝트가 서버 루트에 있는지 묻는다면, 그 프로젝트는 이름으로 소유 한 디렉토리 안에있다. 프로젝트의 나는 XAMPP를 실행 중이며 여러 프로젝트를 갖고있다. 각 프로젝트는 htdocs 내부에있다. 이것이 이것이 더 명확하고 구체적이되기를 바랍니다. – bikey77