web-dev-qa-db-ja.com

GithubをjavascriptライブラリのCDNとして使用する必要がありますか?

独自のサーバーの代わりにCDNからJavaScriptライブラリを提供することには、大きな利点があります。サーバーの作業量が少なく、CDNがサーバーよりもユーザーに近いコピーを持つ可能性がありますが、最も重要なことは、ユーザーのブラウザーが既にそのURLからキャッシュしている可能性が高いことです。最後の方法は、すべての人の総作業量が少ないことを意味するため、明らかに勝ちであり、私たち(開発者)がJavaScriptを提供するためにCDNに依存する頻度が高くなります。

しかし、人気のあるjavascript CDN(Google、Microsoft、その他?)は少数のファイルのみをホストします。他の人は、自分でホストするか、ソース管理サーバーをCDNの一種として使用するかを選択できます。 Githubまたは同様のものが、グローバルに提供するために最適化された地理的に分散したファイルのキャッシュを持っている可能性は低いです。しかし、それが一般的な慣行である場合、ユーザーのブラウザでキャッシュされる可能性は十分にあります。サーバーからgithubへの作業のオフロードの議論は、Githubが喜んでこれを行うことを志願した場合にのみ有効です。

それで、それは一般的な習慣ですか?私たちはお互いにこれをするように勧めるべきですか? Githubは気にしますか?彼らは公式の方針を述べていますか?

92
Leopd

パフォーマンスやIE9の互換性に関心がある場合は、JavaScriptファイルに対してこれを行うべきではありません。

GitHubは、将来のexpiresヘッダーを持つ「生の」ファイルを提供しません。クロスサイトキャッシングの可能性がなければ、パブリックCDNを使用してJavaScriptをホストすることの最大の利点を失います。実際、GitHubをCDNとして使用することは、各ユーザーがファイルを最初に要求した後、サーバーでファイルをホストするよりも遅くなります(サーバーでキャッシュを正しく構成すると仮定します)。

もう1つの問題は、GitHubが、ファイルの実際のMIMEタイプと一致するコンテンツタイプヘッダーを持つ「生の」ファイルを提供しないことです。 IE9(およびおそらく他のブラウザー/プロキシ/ファイアウォール/など)では、正しいコンテンツタイプで提供されないJavaScriptファイルはデフォルトでブロックされます。 BlockUIデモページで実際の動作を確認できます。たとえば、次のとおりです。

enter image description here

90
Dave Ward

Dave Ward's answer で概説されているように、GitHubの「raw」ファイルへのリンクにはいくつかの問題があります。

GitHubページをオプションとして検討することをお勧めします。

この記事を読む:
CDNとしてのGitHub。GitHubページでJavascript、スタイルシート、およびWebアセットをキャッシュします。

17
Chris Jacob

これは githubのサポートフォーラムで最近尋ねられた であり、公式の答えは大丈夫だというものでした。

そうは言っても、私は他の答えに同意します:githubはCDNになることは決してmeantでありませんでしたが、GoogleとMicrosoftには特定のインフラストラクチャがあります。

11

プロトタイピング/個人的なものには適していますが、生産には次のようなものがあります:

http://www.cdnjs.com/

http://cachedcommons.org/ - 利用できない

10
meleyal