GithubをJavaScriptライブラリのCDNとして使用する必要がありますか?[閉まっている]


94

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

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

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


5
作成者がファイル構造を再配置するとどうなりますか?それは何百ものウェブサイトのブレイクでの彼の問題コードではありません。
レイノス2011年

2
@Raynos GitHubリポジトリの「作成者」である場合は、変更を制御します。
Chris Jacob、

2
@ChrisJacobがポイントです。自分のファイル構造を変更しても、もう存在しないコードを指摘しても問題ありません。
レイノス'17年

5
rawgithub.comを使用して、進行中のHTML、JavaScript、またはCSSを誰かと共有して簡単なデモを行ったり、jsPerfテストで使用したりできます。
ジョバンニカッペロット2013

@GiovanniCappellottoからの上記のコメントで正しい答えが出たので、質問を再開する必要があります。
Supersharp 2017年

回答:


93

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

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

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

ここに画像の説明を入力してください


10
また...「そのようなrawファイルをリクエストするとき、ファイルシステムからファイルに直接アクセスするのではありません!アプリケーションコードのレイヤーも通過するので、サイトが確実に遅くなります。そうしないでください。 。代わりに、gh-pagesブランチを作成し、そこからロードします " -viatropos.com/blog/github-as-a-cdn
Chris Jacob

RawGitは、適切なContent-Typeヘッダーを使用して、GitHubから直接rawファイルを提供します。URLで特定のタグを使用するか、ハッシュをコミットします(ブランチではありません)。ファイルはURLに基​​づいて永続的にキャッシュされます。rawgit.com
ケレムBaydoğan


11

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

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


7
明確にするために。そのサポートフォーラムの応答は、私の回答でリンクした記事(GitHubの「未加工」ファイルではなくCDNとしてのGitHubページ)に関連しています:stackoverflow.com/questions/5502540/…)。
クリスジェイコブ

10

プロトタイピング/個人的なものには問題ありませんが、プロダクションについては次のようにします。

http://www.cdnjs.com/

http://cachedcommons.org/-利用できなくなりました


私はあなたがCachedCommons.comがちょうどgithub.comから提供されて知っている願っています
ocodo

しかし、URLはCachedCommons cachedcommons.org/cache/mootools/1.2.4/javascripts/mootools.jsをポイントしているようで、プロキシの可能性があります。
meleyal 2013年

申し訳ありませんが、GithubをCDNとして使用することに関する古い情報は明らかに適用されなくなったようです。将来起こりうる可用性の問題は別として、これを回避するためにライブラリーを作成することは価値があります。
ocodo 2013年

2
:すぐにオプションではありませんのGithubへのリンクのように見えるgithub.com/blog/...
meleyalを

1
実際には問題ありません。GitHubベースのリソースをCDNとして使用する場合は、静的ページサイト(現在はGitHub.io)の一部としてホストされていることを確認してください-これは、ちなみに一位。
ocodo 2013年

-2

私は数か月間それをやっています、最初にいくつかの懸念がありましたが、ファイルが公開されていることに問題がない場合は完全にクールです、気になる場合は縮小バージョンを使用してください。

しかし、それでも-GoogleとMSはjQueryとjQueryテンプレートのスペースを支配しているので、そのために使用します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.