을 구성하는 방법 mod_rewrite 를 봉사하는 축소된 파일의 경우 사용할 수 있습니까?
-
04-07-2019 - |
문제
여기에는 문제점:우리가 많이 자바스크립트와 많은 CSS 파일을 우리는 오히려 봉사 최소화.의 최소화가 쉽습니다:설정 YUI 압축기,실행하는 개미 작업,그리고 뱉어 축소된 파일은 우리가 저장 옆에 있습니다.
그래서 우리는 다음과 같은 디렉토리 구조에 어딘가 안에 우리의 DocumentRoot:
/ /js /min foo-min.js bar-min.js foo.js bar.js quux.js /css ...
이제 우리에게 필요한 것은 아파치가 제공에서 파일 min 하위 디렉터리 대체 제 압축 파일, 는 경우에,그들의 최소화 버전을 사용할 수 없습니다.마지막 문제 중 하나는 내가 해를 구할 수 없습니다.
예를 들어:가 있다고 가정 요청 example.com/js/foo.js —이 경우 아파치 보내야 한다는 내용의 /js/min/foo-min.js.없음 최소화 quux.js, 도록 요청 /js/quux.js 환 /js/quux.js 자체 404.마지막으로,없을 경우 /js/fred.js,그것으로 끝날 404.
실제로,나는 설정 빌드 스크립트에서 같은 방법으로는 unminified 파일을 배포하지 않에서 생산 server,하지만 이 구성은 여전히 유용할 수 있는 통합 서버 및 개발에 기계입니다.
해결책
여기에 구성하는 일:
/js/.htaccess:
RewriteEngine On
RewriteBase /js
RewriteCond %{REQUEST_URI} ^/js/((.+)\.js)$
RewriteCond %{DOCUMENT_ROOT}/js/min/%2-min.js -f
RewriteRule ^(.+)$ min/%2-min.js [L]
에 대해 동일 css 디렉토리에 있습니다.
다른 팁
당신이 사용할 수 있습 RewriteCond 의 존재를 검출하기 위하여는 축소된 파일:
RewriteCond %{REQUESTURI} ^/js/(.*\.js)
RewriteCond js/min/%1 -f
RewriteRule %1 min/%1 [L]
이 가능한 변경을 구축 스크립트?그렇다면,구성할 수 있습니다 그들을 축하파일하고 그들에게 이름이 동일하지만,경우에만 제공되는 적절한 플래그,예를 들어, ant productionDeploy
대 ant integrationDeploy
.는 방법을 최소화 프로세스는 완전히 투명하 제외한 모든 것을 구축하는 스크립트입니다.