Chemin des actifs dans les fichiers CSS dans Symfony 2
Problème :
Intégration de fichiers CSS avec des images dans Symfony 2 à l'aide une structure de répertoires spécifique.
Solutions tentées :
-
Chemins absolus : Le maintien des chemins absolus dans les fichiers CSS n'est pas une solution évolutive en raison à des problèmes de déploiement potentiels.
-
Assetic avec filtre "cssrewrite" : Bien que l'utilisation du filtre cssrewrite aide dans certains cas, il peut produire des chemins incorrects.
-
Relatif Chemins avec "../" : Cette approche fonctionne dans l'environnement de développement mais rencontre des problèmes dans l'environnement de production.
Solution finale :
Option 1 : Supprimer les fichiers CSS d'origine après la compilation
- Stockez les fichiers CSS d'origine dans un répertoire "assets" privé.
- Installez les fichiers CSS dans le public " web" en utilisant Assetic:install.
- Effectuez Assetic:dump pour compiler le CSS et générer la version finale dans /web/css/stylexyz.css.
- Supprimez les fichiers CSS d'origine de / répertoire public après Assetic:dump.
Option 2 : précompiler le CSS et installer directement dans le répertoire public
- Précompiler le CSS en utilisant votre méthode préférée (par exemple, Sass, Less).
- Copiez les fichiers CSS précompilés dans le répertoire public "web".
- Installez les fichiers CSS via Assetic:install, ce qui créera liens symboliques vers les fichiers CSS compilés.
- Supprimez les fichiers CSS d'origine du répertoire public après Assetic:install.
Avantages :
- Conforme à la structure de répertoires souhaitée.
- Empêche l'exposition des fichiers CSS originaux au public.
- Garantit des références de chemin correctes aux images.
- Permet l'utilisation de Filtres CSS.
Considérations :
- La solution finale ignore l'utilisation de Asset() dans Twig car elle suppose que les fichiers CSS sont pré- compilé et installé.
- Il est important de mettre en place un déploiement ou un processus automatisé pour gérer l'installation et la suppression des fichiers CSS selon les besoins.
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!