2017-12-25 22 views
2

Symfony 4でアプリケーションを構築しており、best practices for web assetsに従いたいと思います。私はSCSSとJSのためにEncore/Webpackを使用しています。結果として生じるJS + CSSは/ public/buildフォルダにうまく格納されます。私は、画像、映画、サウンドのような静的資産を保存して使用する方法に悩まされています。Symfony 4で資産を扱う方法

「public/images」フォルダまたは「assets/images」に画像を保存する必要がありますか?

そして、いくつかのフォローアップの質問:

画像がpublic/imagesに保存されている場合、私はasset('...')呼び出しでテンプレートを汚染した場合、私はどんな利益を得るのだろうか?

画像は、その後、assets/imagesに格納されている場合:

  • 彼らはhttp経由で提供されるようにpublic/imagesに移動されている方法は? ./bin/console assets:install何もしませんでした:'[OK]任意のバンドルで資産が提供されていません。
  • SCSSでどのように使用しますか?相対パス経由ですか?

よろしく、

答えて

2

は '公共/画像' フォルダまたは '資産/画像' の画像保存すべきか?

public/のすべては、ブラウザから入手できます。ここでは、生産準備とビルドだけが行われるべきです。 あなたのイメージは何の処理も必要ないので、(should)本当にそこにイメージを置くことができます。

ここでは、画像をassets/に入れて処理してから、処理した画像のみをpublic/に入れて処理する必要があるとします(醜いJPEG圧縮など)。

画像がパブリック/画像に保存されている場合、アセット( '...')コールでテンプレートを汚染すると効果はありますか?

はい、asset()は、Encoreまたはアセットビルド管理とは関係ありません。それはあなたのURLを修正することだけです。つまり、サーバー上のサブディレクトリ(example.com/app/)にアプリを移動すると、URLは自動的に適応します。詳しくは、Asset componentのドキュメントを参照してください。