Symfony 2 の CSS アセットのパス
問題:
Symfony 2 プロジェクト内、画像とフォントへの参照を含む CSS ファイルがあります。 (例: url(..))。パブリック ディレクトリ内のオリジナルを直接公開せずに、CSS でこれらのファイルを参照したいと考えています。
考えられる解決策:
解決策 1: 絶対パス
CSS 内のすべてのパスを絶対パスに変更することは適切な解決策ではありませんアプリケーションは常に同じサブディレクトリからアクセスできるとは限らないためです。
解決策 2: 「cssrewrite」フィルターを使用したアセティック
「cssrewrite」フィルターを使用したアセティックの使用が役立つ場合があります。パスを書き換えますが、パスが正しくなくなることがよくあります
解決策 3: 相対パス
CSS 内のすべてのパスをスタイルシートの場所からの相対パスに変更することは、CSS パスに次の内容が含まれる開発環境を除いて機能します。 「/app_dev.php」、画像の「NotFoundHttpException」が発生する
有効な解決策:
唯一の有効な解決策は、元の CSS ファイルをプライベート ディレクトリ (例: "Resources/assets/css") に配置することです。以下を使用して、それらをパブリック ディレクトリ (例: "web/css") にコンパイルします。 Assetic.
コード構造:
... +-src/ | +-MyCompany/ | +-MyBundle/ | +-Resources/ | +-assets/ | +-css/ | +-stylesheets... +-web/ | +-css/ | +-stylexyz.css | +-images/ | +-images... ...
Assetic Twig コード:
{% stylesheets '@MyCompanyMyBundle/Resources/assets/css/*.css' filter="cssrewrite" %} <link rel="stylesheet" href="{{ asset_url }}" /> {% endstylesheets %}
コンパイル プロセス:
このプロセスCSS ファイルが正しいイメージ パスを使用してパブリック ディレクトリにコンパイルされていることを確認します。
利点:
以上が安全かつ効率的なデプロイのために Symfony 2 で CSS アセットパスを管理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。