Il est difficile de répondre à cette question. Les deux options ont leurs avantages et leurs inconvénients à mon avis.
Personnellement, je n'aime pas lire un seul ÉNORME fichier CSS, et sa maintenance est très difficile. D'un autre côté, le fait de le diviser entraîne des requêtes http supplémentaires qui peuvent potentiellement ralentir les choses.
Mon opinion serait l'une des deux choses suivantes .
1) Si vous savez que votre CSS ne changera JAMAIS une fois que vous l'aurez construit, je construirais plusieurs fichiers CSS pendant la phase de développement (pour la lisibilité), puis je les combinerais manuellement avant la mise en ligne (pour réduire les requêtes http).
2) Si vous savez que vous allez changer votre CSS de temps en temps, et que vous avez besoin de le garder lisible, je construirais des fichiers séparés et utiliserais du code (à condition que vous utilisiez une sorte de langage de programmation) pour les combiner à l'endroit suivant temps de fonctionnement le temps de construction (la minification/combinaison au moment de l'exécution est un véritable gouffre à ressources).
Quelle que soit l'option choisie, je recommande vivement la mise en cache côté client afin de réduire encore les requêtes http.
EDITAR:
J'ai trouvé ceci blog qui montre comment combiner les CSS au moment de l'exécution en n'utilisant que du code. Cela vaut la peine d'y jeter un coup d'œil (même si je ne l'ai pas encore testé moi-même).
EDIT 2 :
J'ai décidé d'utiliser des fichiers séparés lors de la conception, et un processus de construction pour minifier et combiner. De cette façon, je peux avoir des fichiers css séparés (gérables) pendant que je développe et un fichier minifié monolithique approprié au moment de l'exécution. J'ai toujours mes fichiers statiques et moins de surcharge système car je ne fais pas de compression/minification au moment de l'exécution.
note : pour les acheteurs, je vous conseille vivement d'utiliser bundler dans le cadre de votre processus de construction. Que vous construisiez à partir de votre IDE ou d'un script de construction, bundler peut être exécuté sous Windows par le biais de l'outil inclus exe
ou peut être exécuté sur n'importe quelle machine qui exécute déjà node.js.
2 votes
Il s'agit d'une VRAIE vieille question, mais confronté au même problème, j'ai trouvé celui que je pense être la meilleure solution au cas où quelqu'un d'autre arriverait sur cette page. Plusieurs fichiers qui sont compressés par PHP et envoyés par une seule requête.
4 votes
@FrankPresenciaFandos faire cela est ok'ish pour un site à faible trafic, mais exécuter ce script à plusieurs reprises sur des sites à fort trafic semble un peu décalé. Si vous utilisez un script de construction, vous pouvez avoir le meilleur des deux mondes et maintenir un serveur web performant puisqu'il n'exécute pas le script php (jamais).
2 votes
Il ne serait exécuté qu'à chaque fois que le css est modifié, et il faudrait alors inclure le fichier css résultant.