IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Symfony PHP Discussion :

Problème à l'utilisation de "app/console assetic:dump --env=prod" [2.x]


Sujet :

Symfony PHP

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 85
    Points : 80
    Points
    80
    Par défaut Problème à l'utilisation de "app/console assetic:dump --env=prod"
    Bonjour à tous,
    je développe un site avec Symfony2 et j'utilise assetic pour gérer mes css et js.
    Suite à un passage en prod et à des problèmes récurrents que les utilisateurs rencontrent, je me pose des questions quant au fonctionnement.
    Quand je déploie un nouveau développement, je lance les deux commandes ci-dessous

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    php app/console cache:clear --env=prod --no-warmup
    php app/console assetic:dump --env=prod --no-debug
    Le problème que j'ai est que le fichier JS qui est généré porte toujours le même nom. Pour que tous les développements soient bien pris en comte il faut donc actualiser sa page (F5) pour charger toutes les nouvelles librairies. Or j'aurais imaginer que justement la commande assetic:dump évitait ce rafraîchissement en changeant le nom des fichiers JS générés...

    Ais-je mal compris le fonctionnement d'Asset(ic)? Est-ce que j'ai oublié une configuration (j'utilise le app.php par défaut)?

    Merci pour vos suggestions (et solutions )

  2. #2
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    725
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juin 2011
    Messages : 725
    Points : 1 050
    Points
    1 050
    Par défaut
    Bonjour,

    la config templating.assets_version permet d'ajouter un numéro de version aux url des js et css.

    http://symfony.com/fr/doc/current/re...assets-version

    Il faut mettre à jour ce paramètre dés que tu as une modif css/js.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 85
    Points : 80
    Points
    80
    Par défaut
    Salut arnooo999,
    et merci pour ta réponse. Bon par contre ça ne marche pas encore tout à fait, c'est à dire que ça fonctionne pour les images mais pas pour les JS (ou CSS).
    J'ai rajouté dans le config.yml:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    ...
    framework:
    ...
        templating:
            engines: ['twig']
            #assets_version: SomeVersionScheme
            assets_version: 1.0.1
    ...
    Il me manque des choses?
    À chaque fois que je modifie assets_version je relance bien sûr:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    php app/console cache:clear --env=prod --no-warmup
    ... et sans rafraîchir ma page (juste un click sur un nouveau lien) les images sont complétées par ?1.0.1 (ou ?1.0.2, etc...)

    ... mais pas les JS ou les CSS .

    Pour info, mes JS sont chargés de la manière suivante dans les TWIG:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    {% block javascripts %}
      {% javascripts '@MyBundle/Resources/public/js/*.js' %}
        <script type="text/javascript" src="{{ asset_url }}"></script>
      {% endjavascripts %}
    {% endblock %}

  4. #4
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    725
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juin 2011
    Messages : 725
    Points : 1 050
    Points
    1 050
    Par défaut
    et comme ceci ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    {% block javascripts %}
      {% javascripts '@MyBundle/Resources/public/js/*.js' %}
        <script type="text/javascript" src="{{ asset(asset_url) }}"></script>
      {% endjavascripts %}
    {% endblock %}

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 85
    Points : 80
    Points
    80
    Par défaut
    Salut arnooo999,
    je n'ai pas eu le temps de répondre hier mais en effet, c'est la solution que j'ai trouvée .

    Pour résumer donc la solution du jour, pour avoir mes JS, CSS et images toujours à jour sans avoir à demander aux utilisateurs d'actualiser leurs pages, il faut rajouter dans config_prod.yml
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    ...
    framework:
    ...
        templating:
            engines: ['twig']
            assets_version: 1.0.1
            assets_version_format:  %%s?version=%%s
    NOTA: avec assets_version_format, c'est plus joli

    À chaque déploiement de nouveau développement, il faut incrémenter assets_version et bien sûr rafraîchir le cache et charger les nouveaux JS et CSS:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    php app/console cache:clear --env=prod --no-warmup
    php app/console assetic:dump --env=prod --no-debug
    Merci pour ton aide arnooo999 et bonne journée à toi!
    Pierrot

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 01/06/2012, 16h57
  2. [2.x] problème de php app/console generate:doctrine:crud
    Par aitiahcene dans le forum Symfony
    Réponses: 7
    Dernier message: 03/05/2012, 17h47
  3. Réponses: 1
    Dernier message: 18/11/2008, 10h26
  4. Problème d'utilisation de Mysql avec dev-c++
    Par Watchi dans le forum Dev-C++
    Réponses: 10
    Dernier message: 06/08/2004, 14h35
  5. Problème a l'affichage dans la console (printf)
    Par PhoneKilleR dans le forum C
    Réponses: 21
    Dernier message: 23/09/2003, 17h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo