Skip to content

CDN のライブラリを使う ​

第5版作成 最終更新 (日本時間)
確認バージョン1.5.8.1

JavaScript や CSS のライブラリは、wwwroot にファイルを置く代わりに、拡張 HTML で jsDelivr などの CDN から読み込めます。 ファイル名から言語文字列を除いた HtmlHeaderBottom.html / HtmlBodyBottom.html を使うと、すべての言語に適用されます。

CDN を使う利点 ​

wwwroot の中にライブラリのファイルを置く方法では、ライブラリ自体のバージョンアップや、プリザンターのバージョンアップへの追従に手間がかかります。 パブリックな環境であれば、ライブラリを配信している CDN サービスを使うことでその手間を減らせます。

設定方法 ​

拡張 HTML の HtmlHeaderBottom と HtmlBodyBottom を使います。

ファイル出力される位置この例で記載するもの
HtmlHeaderBottom.htmlhead の末尾(プリザンター本体の CSS の後)JavaScript(script タグ)
HtmlBodyBottom.htmlbody の末尾(本体の JavaScript・サイトのスクリプトの後)CSS(link タグ)

一般的な「CSS は head、JavaScript は body の末尾」とは逆の配置ですが、出力位置から見て意図のある配置です(HtmlTemplates.cs、同 L136-L155)。

  • HtmlBodyBottom はサイトのスクリプトより後に出力されるため、ここに置いた JavaScript ライブラリはサイトのスクリプトを読み込む時点ではまだ定義されていません。サイトのスクリプトから使うライブラリは HtmlHeaderBottom に置きます。ただし head の時点では本体の jQuery がまだ読み込まれていないため、jQuery プラグインのように jQuery に依存するライブラリは HtmlHeaderBottom には置けません。
  • HtmlBodyBottom の CSS は本体やサイトのスタイルより後に読み込まれるため、同じ詳細度のセレクタなら本体側の指定を上書きします。

言語ごとのファイル名

公式マニュアルでは HtmlHeaderBottom_ja.html / HtmlBodyBottom_ja.html のように言語文字列を含むファイル名が記載されています。確認したソースでは、ファイル名の _ 以降が言語として扱われ、言語文字列を除いた HtmlHeaderBottom.html / HtmlBodyBottom.html は言語に関係なく出力されます(Initializer.cs、Displays.cs)。

例: sweetalert2 を読み込む ​

メッセージボックスの表示によく使われる sweetalert2 を例にします。jsDelivr のページに表示されるリンクを、それぞれの HTML に記載します。

jsDelivr の sweetalert2 のページ

html
<script src="https://cdn.jsdelivr.net/npm/sweetalert2@11.22.2/dist/sweetalert2.all.min.js"></script>
html
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/sweetalert2@11.22.2/dist/sweetalert2.min.css">

複数のライブラリを組み込む場合は、これらのファイルに追記していきます。

関連ページ ​

変更履歴

第5版記事の確認版を繰り返す表現を整理する
第4版「CDN のライブラリを使う」の画像をこのサイトで配信するようにする
第3版「スクリプト」を 1.5.8.1 のソースで検証して修正
第2版記事のファイル名に並び順の番号を付け、元記事リンクを frontmatter の sources に移行
第1版「スクリプト」セクションの記事を追加