1. ホーム
  2. ジャバスクリプト

[解決済み】GitHubでホストされている外部JavaScriptファイルをリンクして実行する。

2022-03-23 15:24:35

質問

ローカルのJavaScriptファイルのリンク参照をGitHubのrawバージョンに変更しようとすると、テストファイルが動かなくなりました。エラーは次のとおりです。

からのスクリプトの実行を拒否しました。そのMIMEタイプ( text/plain が実行可能でなく、厳密なMIMEタイプチェックが有効になっています。

この動作を無効にする方法、またはGitHubの生ファイルにリンクできるサービスはありますか?

動作するコードです。

<script src="bootstrap-wysiwyg.js"></script>

動作しないコードです。

<script src="https://raw.github.com/mindmup/bootstrap-wysiwyg/master/bootstrap-wysiwyg.js"></script>

解決方法は?

そこで を使用することで、この問題を回避することができます。 jsdelivr.net .

ステップス :

  1. GitHubであなたのリンクを見つけ、"Raw"バージョンにクリックします。
  2. URLをコピーしてください。
  3. 変更 raw.githubusercontent.comcdn.jsdelivr.net
  4. 挿入 /gh/ をユーザー名の前に置いてください。
  5. を削除します。 branch という名前を付けます。
  6. (オプション) バージョン として、リンクさせたい @version (となります(これを行わないと 最新の - これは長期的なキャッシュを引き起こす可能性があります)

:

http://raw.githubusercontent.com/<username>/<repo>/<branch>/path/to/file.js

最新版を入手するには、このURLをご利用ください。

http://cdn.jsdelivr.net/gh/<username>/<repo>/path/to/file.js

特定のバージョンやコミットハッシュを取得する場合は、このURLを使用します。

http://cdn.jsdelivr.net/gh/<username>/<repo>@<version or hash>/path/to/file.js

本番環境用 の場合、ブランチではなく、特定のタグやコミットハッシュをターゲットにすることを検討してください。ブランチではなく、特定のタグやコミットハッシュをターゲットにすることを検討してください。 最新の のリンクは、ファイルの長期キャッシュを引き起こす可能性があり、新しいバージョンをプッシュする際にリンクが更新されない原因になります。コミットハッシュやタグによるファイルへのリンクは、そのバージョンに固有のリンクになります。


なぜこれが必要なのですか?

2013年、GitHubは X-Content-Type-Options: nosniff これは、よりモダンなブラウザに厳密な MIME タイプチェックを行うよう指示するものです。そして、サーバーが返すMIMEタイプで生のファイルを返し、ブラウザが意図したとおりにファイルを使うことを防ぎます(ブラウザがその設定を尊重する場合)。

このトピックの背景については、以下を参照してください。 このスレッド .