안전하고 효율적인 배포를 위해 Symfony 2에서 CSS 자산 경로를 관리하는 방법은 무엇입니까?

Mary-Kate Olsen
풀어 주다: 2024-11-12 09:18:01
원래의
930명이 탐색했습니다.

How to Manage CSS Asset Paths in Symfony 2 for Secure and Efficient Deployment?

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 파일이 올바른 이미지와 함께 공용 디렉토리로 컴파일되었는지 확인합니다. 경로:

  1. 원본 CSS 파일을 공용 디렉토리에 복사합니다.
  2. "assetic:dump"를 실행하여 CSS 파일을 컴파일합니다.
  3. 원본 CSS 파일을 제거합니다. 대중으로부터 디렉토리.

장점:

  • 원본 CSS 파일을 개인 디렉토리에 저장할 수 있습니다.
  • CSS를 공개로 컴파일합니다. 올바른 이미지 경로가 있는 디렉토리.
  • 원본 CSS 파일을 공개.

위 내용은 안전하고 효율적인 배포를 위해 Symfony 2에서 CSS 자산 경로를 관리하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿