両者の間には少しグレーゾーンがあります。Discourse を設定して、テーマやプラグインの JS を含むアセットを CDN で配信するようにすることができます。つまり、プラグインが /vendor 内の外部ライブラリをロードする場合でも、Discourse で設定した CDN から読み込まれることになります。ただし、これはプライベート CDN です。
とはいえ、あなたが言及しているのはおそらくそれではないでしょう。あなたが指しているのは https://cdnjs.com や https://www.jsdelivr.com のようなサービスであり、これは少し異なる話題です——パブリック CDN です。
cdnjs のようなサービスは、そのような用途に特化した広範なサーバーネットワークを持っています。
つまり、
これらは高速になる可能性があり、サーバーへの負荷を軽減する助けにもなります。
しかし…その速度の恩恵は、Discourse でプライベート CDN を使うように設定したサイトで /vendor を使用する場合でも得られます。
また、帯域幅に関しては、ほとんどの外部 JS ライブラリは 20KB 未満です。そのため、多少の節約にはなりますが、あなたのサイトが毎日数十万回のアクセスを受けない限り、大きなポイントではありません。
cdnjs のようなものを使う利点の一つは、同じファイルを配信し、キャッシュヘッダーを含んでいることです。
それが何を意味するのかというと、例えば jQuery を考えてみましょう。
多くのサイトが jQuery を使用しており、その多くは jQuery を配信するために cdnjs を利用しています。cdnjs がユーザーに jQuery ファイルを配信する際、キャッシュヘッダーを含みます(デフォルトでは 1 年間)。
これは、ユーザーが jQuery に cdnjs を使っているサイト A を訪れた後、同じファイルの同じバージョンを使っているサイト B を訪れた場合、ブラウザは jQuery を再ダウンロードする必要がないことを意味します。なぜならキャッシュされているからです。その結果、ページの読み込みが高速になります。
上記の点が、外部ライブラリに cdnjs のようなものを使う最大の利点です。
ただし、jQuery のように非常に一般的なライブラリはほとんどないため、ライブラリの普及度によって大きく異なります。
cdnjs からファイルをロードする場合は、CSP 設定 にそれらを追加することも忘れないでください。
つまり、答えは…状況によります。
ライブラリをそのままロードしていますか?
それは一般的なものですか?
サイズは大きめですか?
もしそうなら、もしかしたら CDN を使うのも一案です。そうでないなら、シンプルに /vendor に追加するだけで済ませましょう。
