5

symfony2アセットバンドルを理解しようとしています。独自のcssファイルを使用するjqueryプラグインを使用しようとしています。私はすべてを入れてからmybundle/Resources/public、images /javascript/とcss/に分割しました

プラグインcssは、相対パスを使用して次のような画像を取得しています../images/sprite.png

アセットを使用してcssファイルを提供します。

{% stylesheets
    '@MyBundle/Resources/public/css/mycss.css' 
%}
<link rel="stylesheet" href="{{ asset_url }}" />
{% endstylesheets %}

アセットによって生成されるパスは/app_dev.php/css/mycss.cssです。これは正しいと思います。明らかに、相対的な画像パスはもう機能していません。ファイル自体はmybundle/Resources / publicにあり、/images/にはないためです。

cssrewriteフィルターを使用しようとすると、パスは次のように書き換えられます http://server.com/Resources/public/images/sprite.png。しかし、これは正しくありません。ファイルはそこにありません。

アセットを使用して相対的な画像を提供するにはどうすればよいですか?

4

1 に答える 1

3

出力パスを詳しく説明し、cssrewriteをまったく使用しないでください。

{% stylesheets output="bundles/zaysoarbiter/css/forms2.css"
    '@ZaysoArbiterBundle/Resources/public/css/forms2.css'
%}

そしてもちろんassets:install、画像をweb/bundles/bundle/imagesどこにでもコピーするために使用します。ブラウザに関する限り、cssと画像は相互に関連して配置されています。assetic:dump本番環境では、実際に生成されたcssファイルを移動するために使用します。

于 2012-02-29T17:38:22.667 に答える