Symfony2 - Synchroniser les ressources publiques (images, css, js)

, par  admin

Dans un Bundle, les images, feuilles de styles et javascripts sont stockés dans le répertoire Resources/public. Votre serveur web doit pouvoir y accéder dans le dossier web/bundles. Il faut donc importer les ressources du dossier public dans ce dossier bundle.

Sur Symfony2
Invite de commande en tant qu’administrateur

Méthode 1 :
Mettre à jour manuellement les ressources de tous les bundle

Méthode 2 (recommandée) :
Création de liens symboliques (les symlinks)

Sur Apache (wamp) :

<VirtualHost *:80>
   DocumentRoot "C:\wamp\www\symfony2\web"
   ServerName symfony2.lan
        DirectoryIndex app_dev.php
   <Directory "C:\wamp\www\symfony2\web">
       Options Indexes FollowSymLinks MultiViews
       AllowOverride None
       Order allow,deny
       allow from all
       <IfModule mod_rewrite.c>
           RewriteEngine On
           RewriteCond %{REQUEST_FILENAME} !-f
           RewriteRule ^(.*)$ /app_dev.php [QSA,L]
       </IfModule>
   </Directory>
</VirtualHost>

Décommentez la ligne LoadModule rewrite_module modules/mod_rewrite.so
de votre fichier httpd.conf

Vous pouvez alors utiliser ces ressources à l’aide des codes html / twig suivant :

<img src="{{ asset('img/monlogo.jpg') }} />

<link href="{{ asset('css/style.css') }}" rel="stylesheet" type="text/css" />

<script src=" {{ asset('js/monscript.js') }}"></script>

Un peu de théorie... Tous les cours théoriques