web-dev-qa-db-fra.com

Comment gérer les actifs dans Symfony 4

Je crée une application avec Symfony 4 Et j'aimerais suivre les meilleures pratiques pour les ressources Web . J'utilise Encore/Webpack pour SCSS et JS et cela fonctionne bien; le JS + CSS résultant est bien stocké dans le dossier/public/build. Je suis coincé sur la façon de stocker et d'utiliser des ressources statiques comme des images, des films, des sons.

Les images doivent-elles être stockées dans le dossier 'public/images' ou dans 'assets/images'?

Et quelques questions de suivi:

Si les images sont stockées dans public/images, Est-ce que j'obtiendrai un avantage si je pollue les modèles avec des appels asset('...')?

Si les images sont stockées dans assets/images, Alors:

  • Comment sont-ils déplacés dans public/images Pour être servis via http? ./bin/console assets:install N'a rien fait, disant: '[OK] Aucun élément n'a été fourni par un ensemble.'.
  • Comment les utiliser dans SCSS? Par des chemins relatifs?

Cordialement,

15
user3429660
  1. Modifiez webpack.config.js après

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

  2. Ajoutez les lignes suivantes. Vous pouvez également faire plus de configuration en décommentant les lignes

    .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. Vous pouvez maintenant utiliser l'image en

Source: https://symfony.com/doc/current/frontend/encore/copy-files.html Détails: http://toihid.com/?p=332 =