ホームページ >ウェブフロントエンド >CSSチュートリアル >安全かつ効率的なデプロイのために Symfony 2 で CSS アセットパスを管理するにはどうすればよいですか?

安全かつ効率的なデプロイのために Symfony 2 で CSS アセットパスを管理するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-11-12 09:18:01936ブラウズ

How to Manage CSS Asset Paths in Symfony 2 for Secure and Efficient Deployment?

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 ファイルが正しいイメージ パスを使用してパブリック ディレクトリにコンパイルされていることを確認します。

  1. 元の CSS ファイルをパブリック ディレクトリにコピーします。
  2. 「assetic:dump」を実行して、 CSS ファイルをコンパイルします。
  3. 元の CSS ファイルを公開から削除します

利点:

  • オリジナルの CSS ファイルをプライベート ディレクトリに保存できます。
  • CSS をコンパイルして公開します
  • 元の CSS ファイルを公開。

以上が安全かつ効率的なデプロイのために Symfony 2 で CSS アセットパスを管理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。