내 로컬 호스트에 HTML/CSS/JS 프로젝트를 작성 중입니다. 프로젝트 루트는 http://localhost/projects/project1/
입니다. 이 같은 자바 스크립트/CSS 파일 를 참조하면 HTML 파일의 경로에 의존하지 않도록하지 않는 한 (HTML 파일은 '기본 URL로 내 프로젝트 루트를 처리 할 수있는 경우HTML 프로젝트 경로 혼란
내가 알고 싶은 나는 현재 디렉토리 에 상대적인 참조). 여기
내 프로젝트 구조입니다 :프로젝트
프로젝트 1
- index.html을
- 페이지 (디렉토리)
- page1.html
page2.html
애플 리케이션 (디렉토리)
APP1 (디렉토리)
- index.html을
- 있는 style.css
- 는
을 app.js
deps (디렉토리)
- jquery.js
내 /projects/project1/index.html
내부 jquery.js를 참조, 볼 수 있듯이,
내가 쓸 필요가 :
<script src="deps/jquery.js"></script>
내에서 jquery.js를 참조하려면 /projects/project1/pages/index1.html
,
나는
나는 내가 ../
의 정확한 수를 쓴없는 확신하는 시점에서
<script src="../../jquery.js"></script>
를 작성해야 쉽게 일으킬 수
<script src="../deps/jquery.js"></script>
이 http://localhost/projects/project1/apps/app1/index.html
내부 jquery.js를 참조하기 위해 의식 오류.
내 디렉토리를 재정렬하거나 이름을 바꾸면 경로가 다시 작성되어 매우 힘들 수 있습니다.
나는 그 중 어떤 것도 매력적이지 않은 여러 가지 방법을 생각해 냈습니다 (옵션 3이 가까워 졌음에도 불구하고).
생각/시도 :
- 나는 htaccess로한다 RewriteEngine/RewriteBase하지만 아무것도 일하지와 함께 연주했습니다.
- NodeJS가 그렇게하기 쉽도록 각 프로젝트마다 새 서버를 만들 수 있습니다. 이렇게하면 각 서버는 '정적 경로'로 '/'입니다. 이 접근법의 문제점은 다른 포트에서 동시에 많은 서버를 동시에 관리하는 혼란을 줄 수 있다는 것입니다.
는 I 그러나이 난 폴더 이동하거나 바꾸고 PROJECT_PATH 변경의 .htaccess마다 열기를 의미하고
SetEnv PROJECT_PATH /projects/project1/
통해 htaccess로의 절대 경로 변수를 설정할 수있다. 이것은 단순 해 보일지도 모르지만 프로젝트를 다른 사람에게주고 그들이 .htaccess가 어떻게 작동하는지 모르는 경우 이 경로를 찾는 방법을 설명하는 것이 매우 어려우며이를 변경하는 방법은 이고 더 문제가있는 경우 .htaccess는 한 줄보다 길다.
이상적으로는이 SetEnv가 내부에있는 폴더 인 을 알아 내기를 원하지만이 작업을 수행하는 방법을 모르겠습니다. 이것은 또한 경로 지정이 .htaccess 나 NodeJS와 같은 PHP가없는 다른 서버로 이동하는 것을 괴롭히는 PHP 전처리에 의존하는 문제가 있습니다 (여전히 PHP를 호출 할 수 있지만 여전히 .htaccess를 처리해야 함).). 이
하는 htaccess로 파일이 특정 htaccess로 파일의 추론 경로 을 포함하는 환경 변수를 만들 확인하는 중 가능한 경우
$_ENV{PROJECT_ROOT}
을 기준으로 경로를 지정할 수 있습니다. 이 방법은 프로젝트가 이동되거나 공유되는 경우 .htaccess를 수정할 필요없이 계속 작동합니다..htaccess를 사용하여 모든 "/"참조에서이 디렉토리를 루트로 취급하는 동일하거나 낮은 디렉토리에있는 HTML 파일을 강제로 작성하십시오.
또는이 문제를 해결할 수있는 다른 사항이 있을지 생각해보십시오.
미리 감사드립니다.
왜 상대 URL을 사용할 수 없습니까? –
때문에 동일한 종속성을 참조하는 각 파일에서 동일한 방식으로 참조되기를 원합니다. 그렇지 않으면 프로젝트를 변경하기가 어려워지고 확장하기가 어렵습니다. 그것은 또한 html 파일을 더 어렵게 만듭니다. – Dmitry