質問
私は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;
}
URLを単に使用したいと思います images/b.png
そして、アセットダンパーにフルパスを決定させます。
CSSrewRiteフィルターを有効にしましたが、何もしていないようです。 CSSに相対パスを提供し、CSSrewriteに絶対的なパスに書き換えるにはどうすればよいですか?
解決
CSSrewriteを使用する必要がなかったことがわかりました。
CSSはCSSファイルに比べて画像をロードするため、私はちょうどしました ../images/image.png
. 。これははるかにシンプルなソリューションですが、CSSrewriteがどのように機能するかはまだ解決していません。
他のヒント
絶対的なパスは書き直さないことがわかりました。 url( '/images/foo.png')は書き換えません。 ...しかし... url( '../ images/foo.png')は...私は試していません:
url( './ images/foo.png') - しかし、これが書き直されると思います。
私はこれに多くの不満を持っていましたが、後知恵では理にかなっていると思います。
Symfony2サイトのドキュメントはこれを言っています...しかし、見逃しやすいです。