web-dev-qa-db-ja.com

Symfony 4でアセットを処理する方法

_Symfony 4_を使用してアプリケーションを構築しています。 Webアセットのベストプラクティス に従いたいと思います。 SCSSとJSにはEncore/Webpackを使用していますが、うまく機能します。結果のJS + CSSは/ public/buildフォルダーに適切に保存されます。画像、動画、サウンドなどの静的アセットを保存して使用する方法に行き詰まっています。

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

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

画像が_public/images_に保存されている場合、asset('...')呼び出しでテンプレートを汚染してもメリットがありますか?

画像が_assets/images_に格納されている場合:

  • Http経由で提供するために、どのように_public/images_に移動しますか? _./bin/console assets:install_は何もせず、 '[OK]どのバンドルからもアセットが提供されませんでした。'.
  • SCSSでそれらをどのように使用しますか?相対パスを介して?

よろしく、

15
user3429660
  1. 後にwebpack.config.jsを編集

    Encore .setOutputPath( '../ build /')

  2. 次の行を追加します。行のコメントを外すことで、より多くの設定を行うこともできます

    .enableVersioning()
    .copyFiles({
     from: './assets/images',
    
     // optional target path, relative to the output dir
     to: 'images/[path][name].[ext]',
    
     // if versioning is enabled, add the file hash too
     //to: 'images/[path][name].[hash:8].[ext]',
    
     // only copy files matching this pattern
     //pattern: /\.(png|jpg|jpeg)$/
    })
    
  3. これで画像を使用できます

ソース: https://symfony.com/doc/current/frontend/encore/copy-files.html 詳細: http://toihid.com/?p=332 =