2012-03-31 2 views
7

Symfony2를 jQuery UI와 함께 사용하려고합니다. 잘 작동하는 JavaScript 부분을 얻었지만 이미지를 작동시키는 데 문제가 있습니다.Symfony2 cssrewrite 필터의 이미지 경로가 꺼져 있습니다.

Assetic 문서에서 읽은 한 가지는 cssrewrite 필터가 CSS 파일의 이미지 경로를 가져 와서 경로가 올바른 위치를 가리킬 수 있도록 업데이트한다는 것입니다. 이것은 정확히 내가 필요로했던 것처럼 보였다. 그래서 나는 cssrewrite를 가능하게했다.

// original 
images/ui-icons_222222_256x240.png 

// using cssrewrite 
../../../app/Resources/public/css/themes/base/images/ui-icons_222222_256x240.png 

첫 번째 경로는 좋지 않습니다. cssrewrite 경로는 적어도 파일 시스템의 정확한 경로를 가리키고, 내 웹 루트와 관련하여 cssrewrite 경로는 꺼져 있습니다. 분명히 내 app 디렉토리가 공개되지 않습니다.

cssrewrite 필터를 사용하면 내 경로가 실제로 작동 할 것으로 변경 될 수 있습니까?

다음은 내 스타일 시트입니다. (그리고 네, 제가 개별적으로 모든 CSS 파일을 포함하고있어 방법은 벙어리 것을 알고 있지만, 지금은 그 권리에 대해 걱정하지 않아요.)를 CssRewrite 필터 일부 known problems 있습니다

{% stylesheets 
     '../app/Resources/public/css/*' 
     '../app/Resources/public/css/themes/base/jquery.ui.accordion.css' 
     '../app/Resources/public/css/themes/base/jquery.ui.all.css' 
     '../app/Resources/public/css/themes/base/jquery.ui.autocomplete.css' 
     '../app/Resources/public/css/themes/base/jquery.ui.base.css' 
     '../app/Resources/public/css/themes/base/jquery.ui.button.css' 
     '../app/Resources/public/css/themes/base/jquery.ui.core.css' 
     '../app/Resources/public/css/themes/base/jquery.ui.datepicker.css' 
     '../app/Resources/public/css/themes/base/jquery.ui.dialog.css' 
     '../app/Resources/public/css/themes/base/jquery.ui.progressbar.css' 
     '../app/Resources/public/css/themes/base/jquery.ui.resizable.css' 
     '../app/Resources/public/css/themes/base/jquery.ui.selectable.css' 
     '../app/Resources/public/css/themes/base/jquery.ui.slider.css' 
     '../app/Resources/public/css/themes/base/jquery.ui.tabs.css' 
     '../app/Resources/public/css/themes/base/jquery.ui.theme.css' 
    %} 
     <link rel="stylesheet" href="{{ asset_url }}" /> 
    {% endstylesheets %} 
+0

제 질문에 대한 답변보기, 작동 예제가 있습니다. http://stackoverflow.com/questions/9500573/path-of-assets-in-css-files-in-symfony2 – apfelbox

답변

11

. 내가 알고있는 한, @BundleName 표기법을 사용하면 제대로 작동하지 않으며 해결 방법은 bundles/bundle_name 경로를 사용하여 CSS 파일을 연결하는 것 같습니다.

따라서 귀하의 코드는 다음과 같이해야한다 : <your_bundle_name> 분명히 작업중인 번들의 이름입니다

{% stylesheets filter='cssrewrite' 
     'bundles/<your_bundle_name>/css/*' 
     'bundles/<your_bundle_name>/css/themes/base/jquery.ui.accordion.css' 
     'bundles/<your_bundle_name>/css/themes/base/jquery.ui.all.css' 
     'bundles/<your_bundle_name>/css/themes/base/jquery.ui.autocomplete.css' 
     'bundles/<your_bundle_name>/css/themes/base/jquery.ui.base.css' 
     'bundles/<your_bundle_name>/css/themes/base/jquery.ui.button.css' 
     'bundles/<your_bundle_name>/css/themes/base/jquery.ui.resizable.css' 
     'bundles/<your_bundle_name>/css/themes/base/jquery.ui.selectable.css' 
     'bundles/<your_bundle_name>/css/themes/base/jquery.ui.slider.css' 
     'bundles/<your_bundle_name>/css/themes/base/jquery.ui.tabs.css' 
     'bundles/<your_bundle_name>/css/themes/base/jquery.ui.theme.css' 
    %} 
     <link rel="stylesheet" href="{{ asset_url }}" /> 
    {% endstylesheets %} 

.

편집 :이 상징적으로 web 디렉토리에 자산을 연결하기 위해, php app/console assets:install --symlink web 명령을 제공해야합니다.

관련 문제