7

Symfony2 を jQuery UI で動作させようとしています。JavaScript の部分は問題なく動作していますが、画像を動作させるのに問題があります。

私が Assetic docs で読んだことの 1 つは、cssrewriteフィルターが CSS ファイルの画像パスを取得して更新し、パスが適切な場所を指すようにすることができるということです。これは私が必要としていたものとまったく同じように見えたので、有効にしましcssrewriteた。cssrewriteこれが私のパスをどのように変更したかです:

// original
images/ui-icons_222222_256x240.png

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

最初の道はダメです。cssrewriteパスは少なくともファイルシステム内の正しいパスを指していますが、私の webroot に関連して、パスcssrewriteはかなり離れています。明らかに、私のappディレクトリは公開されていません。

cssrewriteパスを実際に機能するものに変更するフィルターを取得するにはどうすればよいですか?

これが私のスタイルシートのインクルードです。(もちろん、これらすべての CSS ファイルを個別にインクルードする方法がばかげていることはわかっていますが、今はそのことについて心配していません。)

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

1 に答える 1

11

CssRewrite フィルターには既知の問題がいくつかあります。私の知る限りでは、表記を使用しても正しく動作せず、パス@BundleNameを使用して CSS ファイルをリンクすることで回避できるようです。bundles/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 %}

<your_bundle_name>作業中のバンドルの名前は明らかにどこにありますか。

編集:アセットをディレクトリphp app/console assets:install --symlink webにシンボリックにリンクするために、必ずコマンドを実行してください。web

于 2012-04-01T14:14:11.327 に答える