Symfony 2 の CSS ファイル内のアセットのパス
Symfony 2 のコンテキストでは、CSS ファイル内の画像を参照する際に問題が発生しました。異なるディレクトリ構造から。次のディレクトリ構造を考慮してください。
... +-src/ | +-MyCompany/ | +-MyBundle/ | +-Resources/ | +-assets/ | +-css/ | +-stylesheets... +-web/ | +-images/ | +-images... ...
元の CSS ファイルをアセット ディレクトリ (/src/MyCompany/MyBundle/Resources/) に保存するというベスト プラクティスを遵守しながら、スタイルシート内の画像を参照しようとすると、問題が発生します。 assets/css/) とパブリック ディレクトリ (/web/images/) 内の画像。
初期の解決策
最初の試みには、絶対パスと Assetic の使用が含まれます。 cssrewrite」フィルター。しかし、これらの解決策は効果がないことが判明しました。
現在の解決策
現在の解決策では、CSS ファイル内の相対パスを利用し、それに応じて小枝を調整します。絶対パスを使用する代わりに、イメージは次のように参照されます:
url("../images/myimage.png")
このソリューションは運用環境では機能しますが、開発環境では問題が発生し、NotFoundHttpException が発生します。
改善された解決策
この問題を克服するための改善された解決策では、CSS ファイルをパブリック ディレクトリに置き、アセット関数を使用して画像を参照します。さらに、元の CSS ファイルは、assetic:dump コマンドの後に削除できます。これにより、画像を正しく参照しながら、元の CSS ファイルをプライベートに保つという望ましい動作が可能になります。
最終勝者
さまざまな方法をテストすると、最適な解決策は、パブリック ディレクトリにある CSS ファイルを使用したアセット関数。このアプローチは、画像の適切な参照を確保しながら、元の CSS ファイルを非公開にしておく必要性に準拠しています。
以上がここでは、質問と回答の形式を強調した、いくつかのタイトルのオプションを示します。 **オプション 1 (課題と解決策に焦点を当てる):** * **Symf の異なるディレクトリにある CSS ファイル内の画像を参照する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。