2012-03-31 15 views
7

Symfony2'yi jQuery UI ile çalışmasını sağlamaya çalışıyorum. Sadece iyi çalışan JavaScript bölümünü aldım ama görüntüleri çalışmak için sorun yaşıyorum.Symfony2 cssrewrite filtresinin görüntü yolları kapalıdır

Assetic belgelerinde okuduğum bir şey, cssrewrite filtresinin, görüntü yollarını CSS dosyalarında alabilmeleri ve yolların doğru yerlere işaret etmeleri için bunları güncelleyebilmeleridir. Bu tam ihtiyacım olana benziyordu, bu yüzden cssrewrite'u etkinleştirdim.

// original 
images/ui-icons_222222_256x240.png 

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

ilk yolu iyi değil: İşte cssrewrite benim yolları değişti nasıl. cssrewrite yolu en azından dosya sistemindeki doğru yola işaret ediyor, ancak webroot'uma göre cssrewrite yolu WAY kapalı. Açıkçası benim app dizini herkese açık değil.

Yollarımın gerçekten işe yarayacağı bir şeyle değiştirilmesi için cssrewrite filtresini nasıl edinebilirim?

İşte stil sayfamın eklenmesi. (Ve evet, ben tek tek tüm bu CSS dosyaları dahil ediyorum yolu dilsiz olduğunu biliyorum ama şimdi bu hakkı için endişelenmiyorum.) CssRewrite filtreli bazı known problems vardır

{% 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

Sorunun yanıtına bakın, bunun bir örneği var: http://stackoverflow.com/questions/9500573/path-of-assets-in-css-files-in-symfony2 – apfelbox

cevap

11

. Bildiğim kadarıyla, @BundleName gösterimini kullanarak düzgün çalışmaz ve bir geçici çözüm, CSS dosyalarını bundles/bundle_name yolunu kullanarak bağlanmış gibi görünüyor.

Böylece kod aşağıdaki gibi bir şey olmalı: <your_bundle_name> açıkçası üzerinde çalışmakta olduğunuz paketin adıdır

{% 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 %} 

.

DÜZENLEME: sembolik web dizine varlıklarınızı birbirine bağlamak için, php app/console assets:install --symlink web komutu verin.