Symfony 2의 CSS 자산 경로
문제:
Symfony 2 프로젝트에서 , 이미지 및 글꼴에 대한 참조가 포함된 CSS 파일이 있습니다(예: URL(..)). 공용 디렉터리에 원본을 직접 노출하지 않고 CSS에서 이러한 파일을 참조하고 싶습니다.
가능한 해결 방법:
해결 방법 1: 절대 경로
CSS의 모든 경로를 절대 경로로 변경하는 것은 적합한 솔루션이 아닙니다. 애플리케이션이 항상 동일한 하위 디렉토리에서 액세스되는 것은 아닙니다.
해결책 2: "cssrewrite" 필터가 포함된 Assetic
"cssrewrite" 필터와 함께 Assetic을 사용하면 경로를 다시 작성하는 데 도움이 될 수 있습니다. , 그러나 잘못된 경로 생성이 발생하는 경우가 많습니다.
해결책 3: 상대 경로
CSS의 모든 경로를 스타일시트 위치에 상대적으로 변경하는 것은 CSS 경로에 "/app_dev.php"가 포함되고 "NotFoundHttpException이 발생하는 개발 환경을 제외하고 작동합니다. " 이미지 경로용.
작업 중 해결책:
유일하게 작동하는 해결책은 원본 CSS 파일을 개인 디렉토리(예: "Resources/assets/css")에 배치하고 공용 디렉토리(예: "web/ css") Assetic을 사용합니다.
코드 구조:
... +-src/ | +-MyCompany/ | +-MyBundle/ | +-Resources/ | +-assets/ | +-css/ | +-stylesheets... +-web/ | +-css/ | +-stylexyz.css | +-images/ | +-images... ...
Assetic Twig 코드:
{% stylesheets '@MyCompanyMyBundle/Resources/assets/css/*.css' filter="cssrewrite" %} <link rel="stylesheet" href="{{ asset_url }}" /> {% endstylesheets %}
컴파일 프로세스:
이 프로세스 CSS 파일이 올바른 이미지와 함께 공용 디렉토리로 컴파일되었는지 확인합니다. 경로:
장점:
위 내용은 안전하고 효율적인 배포를 위해 Symfony 2에서 CSS 자산 경로를 관리하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!