2017-12-28 25 views
0

기본 프로젝트 폴더 아래에 기본 프로젝트 폴더 (/ root)와 하위 폴더 (/ root/sub)에 PHP 파일이 있습니다.JavaScript/CSS 파일 용 PHP에서 다목적 상대 경로를 어떻게 에코합니까?

이 두 PHP 파일은 동일한 CSS 및 JS 파일이 참조되는 섹션이 각각 <head>이고/root/css 및/root/js 아래에 있습니다. 코드 복제를 피하기 위해 일관된 <head> 섹션을 가져 와서/root/module에 mod_head.php라는 PHP 모듈에 넣었습니다. 그런 다음이 모듈을/root 및/root/sub 아래의 PHP 파일에 include를 사용하여 통합했습니다.

그러나 CSS 파일과 JS 파일의 상대 경로가/root 및/root/css 아래의 PHP 파일과 다르므로 include 문은 주 PHP 파일에 상대적인 경로 만 사용하기 때문에 CSS 및 JS 파일을 제대로 참조하십시오.

/루트 아래 PHP 파일의 경우
  1. <head> 섹션에 태그가 가지고있는 링크스크립트 "JS/main.js"와 "CSS :

    는 어떻게 그래서 이것을 어떻게 설정합니까 /main.css ../JS/main.js "과"을 "각각의 파일 및/루트/하위에서 PHP 파일의 경우

  2. <head> 섹션에서 링크스크립트 태그가 있습니다." ./CSS/main.css "해당 파일

나는 DIR와 $ _SERVER [ 'DOCUMENT_ROOT'],하지만 서버와 관련된 이러한 출력 절대 경로를 사용했지만, 클라이언트 측에서 실행되는 이러한 경로에 대한 검색부터 작동하지 않습니다 .

+0

사이트를 어떻게 호스팅합니까? 내가 가정/루트는 yoursite.com/입니까? 그렇다면 로컬 가상 호스트를 설정하여 yoursite.ir이 yourprojectdir/root /를 가리 키도록 할 수 있습니다. 그런 식으로 자산에 올바른 URL을 쓸 수 있습니다. src = "/ js/foo.js"' – JimL

+0

지금 당장은/Library/WebServer/Documents 아래 Mac에서 작업하고 있지만 Linux 서버에서 라이브 사이트를 호스팅하고 있습니다. 블루 호스트. –

+0

그런 다음 다른 개발 환경처럼 사이트에 액세스 할 수 있도록 로컬 개발 환경에 가상 호스트를 설치하는 것이 좋습니다. 그런 식으로 도메인 루트 (예 :'/ js/somefile.js')에 대한 URL이 올바른 파일로 이동하게되고 잘못 구성된 개발 환경을 지원하기 위해 코드를 작성하지 않아도됩니다. (프로덕션 사이트는 절대적으로 for) – JimL

답변

0

나는 그것을 해킹하는 방식으로 해결했다. 하위 폴더 이름이 무엇인지 알면 하위 폴더 이름이 getcwd() 결과에 있는지 확인한 다음 "../CSS/main.css"를 표시하고 그렇지 않으면 "CSS /main.css "파일 경로.