1

Web アプリケーションで Assetic と Twig を使用しています。私は symfony2 フレームワークを使用していません。

プロジェクトの構造は次のようになります

  • アプリ

    • スタイル
    • 画像
  • www

    • CSS
    • 画像

テンプレートの 1 つで Assetic stylesheets タグを使用して、このマークアップを作成しました。

{% stylesheets 'style/a.css' filter='cssrewrite' output='css/*'%}
   <link href="{{ asset_url }}" rel='stylesheet' type='text/css'>
{% endstylesheets  %}

現在、アプリは http://localhost/myapp/ でホストされており、 http://localhost/myapp/www経由でアクセスします。

アセットをコンパイルして の下のディレクトリにダンプするダンプ ストリップを作成しましたwww

私のCSSでは、絶対パスを使用して画像を参照しています(これは機能します):

#myelement{
  background: url('/app/www/images/b.png') no-repeat;
}

相対パス (cssrewrite フィルターを使用) を使用すると、URL は書き換えられません。

#myelement{
  background: url('images/b.png') no-repeat;
}

images/b.pngURL をそのまま使用し、アセット ダンパーにフル パスを決定させたいと考えています。

cssrewrite フィルターを有効にしましたが、何もしていないようです。CSS で相対パスを指定し、cssrewrite でそれを絶対パスに書き換えるにはどうすればよいですか?

4

2 に答える 2

0

絶対パスは書き換えられないことがわかりました。url('/images/foo.png') は書き換えません。...しかし... url('../images/foo.png') は...私は試していません:

url('./images/foo.png') - しかし、これは書き直されると思います。

私はこれに多くのフラストレーションを感じましたが、後から考えると理にかなっていると思います。

Symfony2 サイトのドキュメントにはこう書かれていますが、見落としがちです。

于 2014-04-07T23:00:10.270 に答える
0

cssrewrite を使用する必要がなかったことがわかりました。

CSSはCSSファイルに関連する画像をロードするので、私は../images/image.png. これははるかに単純な解決策ですが、cssrewrite がどのように機能するかはまだわかっていません。

于 2012-02-18T03:54:39.273 に答える