web-dev-qa-db-fra.com

Symfony 2 - Utilisation des ressources

J'ai besoin de quelques conseils sur la façon de travailler avec les actifs dans Symfony 2. Par exemple, devons-nous toujours effectuer les actifs: mettre à jour chaque fois qu'une image est ajoutée? Je sais qu'Assetic s'occupe de la gestion des fichiers css et javascript mais qu'en est-il des images? Quelle serait la meilleure pratique pour le développement frontal avec Symfony 2? Comment pouvez-vous configurer vos fichiers css, images et js dans votre application pour faciliter le développement, le déploiement et la modification?

33
Frank6

En ce qui concerne les images, si vous les avez ajoutées dans votre dossier public, je pense qu'il n'est pas nécessaire d'effectuer assets:update

Cependant, si vous ajoutez l'image dans les dossiers de ressources d'un ensemble, vous devrez peut-être, en fonction de votre système d'exploitation et des options que vous avez utilisées lors de l'appel de assets:install

Si vous utilisez un système d'exploitation qui prend en charge les liens symboliques (linux, OS X, et je suppose que tous les systèmes d'exploitation sauf Windows), vous pouvez installer les actifs appelants (je ne me souviens pas exactement de l'appel, l'important ici est l'option symlink) :

php app/console assets:install web --symlink

De cette façon, au lieu d'avoir une copie des ressources de chaque bundle, vous aurez un lien symbolique, donc il ne devrait pas être nécessaire de mettre à jour. Si vous avez un système d'exploitation qui ne prend pas en charge les liens symboliques, je pense que vous devrez continuer à mettre à jour ou à réinstaller les actifs (en fait, j'ai toujours utilisé assets:install, Je ne savais pas qu'il y avait une option de mise à jour: P).

En ce qui concerne la configuration, je place généralement tous les css, js, images et toutes les ressources publiques dans un bundle s'il n'est utilisé que dans le bundle, et le place dans le dossier public s'il est utilisé par de nombreux bundles, ou je prévois de l'utiliser dans d'autres bundles.

76
alghimo

Depuis Symfony 2.7, cela générera des liens symboliques relatifs dans le répertoire web:

php app/console assets:install web --symlink --relative

Dans composer.json, ajoutez:

"extra": {
    "symfony-assets-install": "relative"
}

Cela générera également des liens symboliques relatifs sur composer update.

2
Diablo

Voici une bonne idée de --symlink.Vous pouvez configurer (config) une seule fois et l'utiliser pour toujours.Si vous en voulez plus http://www.w3docs.com/snippets/symfony/how-to-keep-symlinks -in-web-bundles-after-composer-update.html

0
Hazarapet Tunanyan