Il y a une petite zone grise entre les deux. Vous pouvez configurer Discourse pour servir les ressources, y compris les fichiers JS des thèmes et plugins, via un CDN. Ainsi, même si votre plugin charge la bibliothèque externe depuis /vendor, elle sera chargée depuis le CDN que vous avez configuré dans Discourse. Cependant, il s’agit d’un CDN privé.
Cela dit, je ne pense pas que ce soit de cela dont vous parlez. Vous faites référence à des services comme https://cdnjs.com et https://www.jsdelivr.com, ce qui est un sujet légèrement différent : un CDN public.
Des services comme cdnjs disposent d’un vaste réseau de serveurs dédiés à ce type de tâche.
Donc,
Ils peuvent être plus rapides et ils aident effectivement à réduire la charge sur votre serveur.
Mais… cet avantage en termes de vitesse est également disponible si vous utilisez /vendor sur un site ayant configuré Discourse pour utiliser un CDN privé.
De plus, concernant la bande passante, la plupart des bibliothèques JS externes font moins de 20 Ko. Donc, bien que vous obteniez certaines économies… ce n’est pas vraiment un point majeur sauf si votre site reçoit des centaines de milliers de visites par jour.
L’un des avantages d’utiliser quelque chose comme cdnjs est qu’ils servent le même fichier et incluent des en-têtes de mise en cache.
Que signifie cela ? Eh bien, prenons jQuery par exemple.
De nombreux sites utilisent jQuery, et beaucoup d’entre eux utilisent cdnjs pour le distribuer. Lorsque cdnjs livre le fichier jQuery à l’utilisateur, il inclut des en-têtes de mise en cache, par défaut pour 1 an.
Cela signifie que si un utilisateur visite le site A – qui utilise cdnjs pour jQuery – puis visite le site B, qui utilise également le même fichier avec la même version, son navigateur n’aura pas besoin de télécharger jQuery à nouveau, car il est déjà en cache, ce qui accélère le chargement de la page.
Le point mentionné ci-dessus est le plus grand avantage à utiliser quelque chose comme cdnjs pour vos bibliothèques externes.
Cependant, très peu de bibliothèques sont aussi courantes que jQuery, donc cela dépend vraiment de la popularité de la bibliothèque.
Lorsque vous chargez des fichiers depuis cdnjs, vous devrez également vous assurer de les ajouter aux paramètres CSP.
Donc, je suppose que la réponse ici est… cela dépend.
Chargez-vous la bibliothèque telle quelle ?
Est-elle courante ?
Est-elle plutôt volumineuse ?
Si oui, peut-être utilisez un CDN. Sinon, restez simple et ajoutez-la simplement dans /vendor.