5

既存のプロジェクトでSymfony2とasseticを使用していますが、CSSで画像を参照する方法がわかりません。私は自分の画像を次の場所に置きました:src/Organisation/MyBundle/Resources/public/images/

アセットのインストールを実行した後:php app/console assets:install public

私はそれらをブラウザに正しくロードすることができます:http://sitename/bundles/organisationmy/images/logo.png

ただし、CSSでそれらをポイントしようとすると、次のようになります。url('/bundles/organisationmy/images/logo.png')

firebugで検査すると、URLは次のように変更されますurl('/web/bundles/organisationmy/images/logo.png')。その結果、404になります。

私のメインテンプレートには次のものがあります。

{% stylesheets filter='yui_css' output='css/output.css'
    '@MyBundle/Resources/public/css/bootstrap.min.css'
    '@MyBundle/Resources/public/css/bootstrap-responsive.min.css'
    '@MyBundle/Resources/public/css/my.css'
 %}

そしてconfig.yml私は持っています:

assetic:
    debug: %kernel.debug%
    use_controller: false
    java: /usr/bin/java
    filters:
        cssrewrite: ~
        yui_css:
            jar: %kernel.root_dir%/java/yuicompressor-2.4.7.jar
        yui_js:
            jar: %kernel.root_dir%/java/yuicompressor-2.4.7.jar

routing.ymlが持っている:

_assetic:
    resource: .
    type: assetic

この質問Symfony2-Assetic-CSSで画像を読み込むのfilter='cssrewrite'を見たことがありますが、filter='yui_css'同時に使用できるかどうか、どのように使用できるか、または問題を解決する方法がわかりません。

基本的に、Symfony2を停止して、CSS画像のパスに/web/問題のプレフィックスを付けることができれば解決されます。または、Symfony2でこの問題を解決する適切な方法を知っている人はいますか?

更新:url('something.png')を入力しても、ページを読み込んだときにCSSが更新されないことに気付いたので、コマンドラインで何かを台無しにした可能性があります。コマンドも指定しました。のようphp app/console assetic:dumpに-CSSを変更してページをリロードする通常の開発スタイルに戻る方法は?

UPDATE2php app/console assetic:dump --watch :アセットが変更されると自動的に更新されることを発見しました。

4

1 に答える 1

8

CSSファイルに画像をロードするには、パスが次のようになっている必要があります"bundles/(bundle name)/images/(file name)"

アップデート

あなたが持っていることを確認してください

write_to: %kernel.root_dir%/../web 

assetic:_config.yml

background: url('/bundles/(bundle name)/images/prev.png')あなたのCSSで

次に実行します

php app/console assets:install web 

php app/console assetic:dump web
于 2012-07-03T14:14:32.160 に答える