15

cssrewrite フィルターは、書き換え後に間違った URL を生成します: Resources/public/less/common.lessにある .less ファイルを 1 つ含むバンドルがあります。

また、 Resources/public/images/colorfulbg.jpgに 1 つの画像があります。

私はコマンドラインから実行します:

php app/console assets:install web --symlink

これにより、Web ディレクトリに正しい公開構造が生成されます。

web
+--bundles
   +--mybundle
      +--less
      |  +--common.less
      |
      +--images
         +--colorfulbg.jpg

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

{% stylesheets 'bundles/mybundle/less/*' filter='cssrewrite,less' %}
  <link rel="stylesheet" href="{{ asset_url }}" type="text/css" />
{% endstylesheets %}

そのフォルダーには .less ファイルが 1 つだけ含まれています。

@bg: #f4f4f4;
body 
{
  background-image: @bg url(../images/colorfulbg.jpg);
}

書き換えられたバックグラウンド パスは次のとおりであるため、何か問題があります。

url(../../bundles/mybundle/images/colorfulbg.jpg);

したがって、背景は適用されません

私は何を間違っていますか?

symfony 2.3 とアセットバンドル 2.3 を使用しています ありがとう

4

3 に答える 3

0

テンプレートのアセットに間違ったタイプの定義を使用している場合は、次を参照してください ( @ プレフィックスに注意してください)。また、css では、Bundle/Resources/public/less フォルダーから比較的下に移動する必要があります。そうではない/bundles/../bundles 、しかし 最も可能性 ../images/が高いです。

    {% stylesheets filter='less,cssembed,?yui_css' output='css/final.css'
        '@AcmeDemoBundle/Resources/public/beautifulslider.css'
        '@AcmeDemoBundle/Resources/public/less/site.less'
    %}
    <link href="{{ asset_url }}" type="text/css" rel="stylesheet" media="screen" />
    {% endstylesheets %}

アップデート1

上記を考えると、私のプロジェクトの1つは同じ種類のセットアップにあります.2.2のままですが、それは問題ではないと思います.lessからこれらの行を削除してみました.

    & > a {
    background:transparent url('../images/btn-big-gray.png') repeat-x;
    }

後に消えた画像

    xxx michael [master] $ app/console assetic:dump --env=dev

私はラインを復元し、アセットを再びキックした後、彼らは戻ってきました... LESSが関係しているという事実には、dis推奨はカウントされないと思いますか?

于 2013-10-31T23:51:07.427 に答える
-3

これは一般的な問題です。cssrewrite フィルターを使用せず/、先頭にURL を使用することをお勧めします。

url("/bundles/mybundle/images/colorfulbg.jpg");

もちろん、このアプローチには、ウェブサイトをドメインのルート ディレクトリにインストールする必要があるという欠点がありますが、正直なところ、サブ ディレクトリにインストールされた Symfony プロジェクトは見たことがありません。

于 2013-10-31T23:25:12.353 に答える