2016-08-30 12 views
0

모든 js 파일을 공통된 clientlib 범주로 구성했습니다. 내가 /etc/designs/myapp/clientlibs/base.js에 액세스 할 때 예를 들어 클라이언트 라이브러리의 특정 js 파일을 호출하려면 어떻게해야합니까?

->etc 
    ->designs 
    ->myapp 
    -> clientlibs 
     -> base 
     -> js 
      -> app1.js 
      -> app2.js 
      -> app3.js 

그래서, 그것은 모든 JS를 포함에서 콘텐츠를 하나의 큰 병합 된 JS를 반환합니다. 이 base.js에서 특정 js (app2.js)에 액세스하는 방법이 있습니까? 우리는 /etc/designs/myapp/clientlibs/base/js/app2.js와 같은 상대 경로를 사용할 수 있습니다.

하지만 js를 반환하려면 더 나은 방법이 있습니까 (아마도 /clientlibs/base.app2.js와 같은 선택기를 사용하고 있습니까?). 아니면 특정 js에 액세스하는 유일한 방법입니까?

답변

2

상대 경로를 사용하면 특정 .js 파일에 액세스 할 수 있습니다. 클라이언트 라이브러리는 선택자를 통해 액세스하도록 설계되지 않았습니다. 이상 적으로는 스크립트를 단일 HTTP 요청으로 결합하기 위해 성능을 향상시키기 때문에 항상 클라이언트 라이브러리를 통해 JavaScript를로드하려고합니다 (더 많은 HTTP 요청을로드하는 데 더 많은 시간이 소요됩니다). 또한 스크립트를 압축하여 크기를 줄입니다. 따라서 app1.js와 같은 파일에서 완전한 공백과 주석 및 서식을 가진 소스 스크립트를 가질 수 있지만 스크립트에서 최종 사용자가 필요하지 않은 공백과 주석을 제거하는 기본 클라이언트 lib를 통해로드하십시오 .

클라이언트 라이브러리의 부분 만으로 만들려면 원하는 부분 만 포함하는 두 번째 클라이언트 라이브러리를 정의 할 수 있습니다. 여러 다른 클라이언트 라이브러리에 포함 된 동일한 소스 파일 (예 : app1.js)을 가질 수 있습니다. 귀하의 유스 케이스의 경우, 이것은 최상의 접근법처럼 들립니다.

디버깅을 위해 ?debugClientLibs=true 쿼리 문자열을 추가하여 브라우저에서 개별 파일을 다시 볼 수 있습니다.