Étant donné que
- Les CDN sont une bonne chose car ils peuvent servir des ressources plus proches du client, le client peut les mettre en cache et vous pouvez réduire la charge sur votre propre serveur.
- Dans les navigateurs récents, le chargement de ressources à partir de serveurs tiers ne diminue pas la sécurité grâce à Subresource Integrity (SRI) .
- Les CDN peuvent être en panne ou bloqués dans certains pays et ne sont pas disponibles lors du développement hors ligne 1 .
Je pense qu'il est convaincant d'utiliser des CDN, mais aussi d'être préparé pour qu'ils ne soient pas disponibles. Ce billet de blog donne une belle introduction aux différentes approches pour fournir des solutions de rechange. Si vous regardez l' exemple de base , vous pouvez voir qu'il contient déjà un peu de code passe-partout pour fournir des solutions de secours uniquement pour jQuery et Bootstrap, tandis que la solution préférée suggère d'utiliser Fallback.js , qui semble être en grande partie non entretenu au cours de la dernière année. . De même, la question SO la plus pertinente pour le sujet concerne uniquement la fourniture d'une solution de secours pour jQuery.
Cependant, dans la plupart des projets du monde réel, je m'attendrais à avoir 5 ressources js / css ou plus, donc je pense que vous ne devriez pas avoir à répéter un passe-partout désordonné pour fournir des solutions de rechange pour chacun d'eux. De plus, chaque fois que vous ajoutez ou mettez à jour une ressource, vous devez maintenant
- Mettre à jour le lien CDN
- Mettre à jour la copie de secours locale par téléchargement manuel ou changement de version dans npm / bower config
- Mettre à jour le lien vers le repli
- Mettre à jour le hachage SRI
Alors que dans le monde idéal , je m'attendrais à ajouter / mettre à jour la ressource dans un fichier de configuration et à exécuter automatiquement toutes les autres étapes (puis à exécuter des tests pour voir si la mise à jour a cassé quelque chose).
Existe-t-il déjà un workflow établi pour y parvenir?
Ou les CDN, et notamment l'ISR, sont-ils encore trop récents?
Ou la plupart des gens ne se soucient-ils tout simplement pas de fournir des solutions de secours pour les ressources CDN?
1. Bien que vous puissiez avoir une version de développement qui ne dépend pas des CDN, mais je considère également que c'est une forme de secours, car elle doit également être maintenue.
Fallback.js
entretenu car il fonctionne déjà parfaitement? Le logiciel ne doit pas être changé toutes les 5 minutes s'il fonctionne déjà.