Chemin des actifs dans les fichiers CSS dans Symfony 2
Dans le contexte de Symfony 2, il y a eu des difficultés à référencer des images dans des fichiers CSS à partir de différentes structures de répertoires. Considérez la structure de répertoires suivante :
... +-src/ | +-MyCompany/ | +-MyBundle/ | +-Resources/ | +-assets/ | +-css/ | +-stylesheets... +-web/ | +-images/ | +-images... ...
Le défi se pose lorsque l'on tente de référencer des images dans des feuilles de style tout en adhérant aux meilleures pratiques consistant à conserver les fichiers CSS d'origine dans le répertoire d'actifs (/src/MyCompany/MyBundle/Resources/ Assets/css/) et images dans le répertoire public (/web/images/).
Solutions initiales
Tentatives initiales incluses en utilisant des chemins absolus et Assetic avec le " filtre "cssrewrite". Cependant, ces solutions se sont révélées inefficaces.
Solution actuelle
La solution actuelle consiste à utiliser des chemins relatifs dans les fichiers CSS et à ajuster twig en conséquence. Au lieu d'utiliser des chemins absolus, les images sont référencées comme suit :
url("../images/myimage.png")
Cette solution fonctionne dans l'environnement de production mais rencontre un problème dans l'environnement de développement, entraînant une NotFoundHttpException.
Solution améliorée
Pour surmonter ce problème, la solution améliorée consiste à placer les fichiers CSS dans un répertoire public et à utiliser la fonction d'actif pour référencer les images. De plus, les fichiers CSS d'origine peuvent être supprimés après la commande Assetic:Dump. Cela permet d'obtenir le comportement souhaité consistant à garder les fichiers CSS d'origine privés tout en référençant correctement les images.
Gagnant final
Après avoir testé diverses méthodes, la meilleure solution apparaît comme l'utilisation du fonction d'actif avec des fichiers CSS situés dans un répertoire public. Cette approche adhère à la nécessité de conserver les fichiers CSS originaux non publiés tout en garantissant un bon référencement des images.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!