指定パスの静的化
esparには幾つかの静的化方法が用意されています。
NO | 方式 | 静的化の説明 |
---|---|---|
1 | サイト全体 | サイトの全ページを静的化して反映します。 |
2 | 指定パスのみ | 指定したページや、指定した画像等ファイルのみを反映します。複数可能。 |
3 | テンプレート | 静的化の種類とオプションを保存し、同じ設定を再利用して静的化します。 |
本ページでは上表のうち、指定パスのみを静的化する方式について解説します。
2. 指定パスのみを静的化する
明示的に特定のパスを指定して静的化を行うことができます。以下のような場合に使用して下さい。
- サイト全体の静的化では時間がかかるので、特定ページのみを即座に更新したい
- サイト全体の静的化で漏れていたファイルが見つかったので、取り急ぎ即座に反映したい
パスは幾つでも指定できます。また指定するパスはページだけでなく、画像やCSSやPDFなどのファイル単体へのパスも指定することができます。また指定パスを静的化する際の挙動や振る舞いを細かく制御するオプションも用意されています。
2-1. 仕組み
サイト全体の静的化と異なり、ピンポイントでの静的化が可能な仕組みとなっています。
指定されたパスが画像やファイルの場合、そのファイルのみを取得します。指定されたパスがページの場合でも、原則そのページのHTMLファイル化のみを行います。ただし、オプション「画像等の関連ファイルも更新する」をONにしている場合は、HTML中に記述のある関連ファイルも一緒に取得します。
指定されたパスの数だけ繰り返し静的化を行います。
2-2. 操作手順
espar の管理画面で以下の通り操作してください。
- CMSを操作して編集作業を行って下さい。
- CMSを操作してプレビュー→更新(または公開)をして下さい。
- espar 管理画面 にログインして下さい。(ホスト名やパスワードはご発注時にお知らせします)
- ログイン後の画面で「指定したパスのみ更新する」を選択して下さい。
- 静的化したいページやファイルのルート相対パスをテキストボックスに入力して下さい。複数指定する場合は1行に1パスずつ入力して下さい。複数のパスを入力する時の個数上限はありません。
- 一番下にある「反映」ボタンをクリックして下さい。
指定されたパスのみが静的化されて完了します。
上記例の場合は /blog/2024/07/07/
のページのHTMLと /styles/main.css
のCSSファイルの2点のみが対象になることに注意して下さい。/blog/2024/07/07/
のHTML中に記載されている画像ファイルやリンク先はデフォルトでは静的化の対象外となります。静的化対象としたい場合はオプションの指定が必要となります。詳しくは2-3. オプションをご覧下さい。
また、パスが適切でない場合は意図した通りに静的化されない可能性があります。必ずルート相対パスで入力して下さい。
2-2-1. 停止
上記の操作手順6で「反映」をクリックすると、ボタンが以下のように赤色の「停止」ボタンに変わります。
万が一、静的化を中断したい場合は「停止」ボタンをクリックして下さい。数秒後にサイト全体の静的化が停止します。停止した場合、途中まで静的化されたものは破棄されます。途中までが公開サーバに反映されるわけではありません。
2-2-2. 経過ログ
操作手順5で「反映」ボタンをクリックした後、今どのページが静的化されているか…をほぼリアルタイムに確認することができます。[詳細表示] のリンクをクリックして下さい。下図のように表示されます。
表示は約3秒ごとに更新されます。静的化が完了すると、下図のように末尾に finish.
と出力されます。万が一エラーが発生した場合にはエラーの内容が出力されます。
2-3. オプション
指定パスの静的化では、細かな振る舞いを制御できる3つのオプションがあります。
それぞれ順に解説します。
2-3-1. 『画像等の関連ファイルも更新する』
このオプションがONになっていれば、指定されたパスがページの場合に、ページに必要な画像やCSSやJavaScriptを一緒に取得します。 ONにすることが推奨されます。
例えば /recruit/
というパスが指定されている場合、このオプションがONであれば /recruit/
ページをHTMLファイル化すると同時に、そのHTML中に記載ある画像やCSSやJavaScript等のファイルも一緒に取得します。オプションがOFFであれば、/recruit/
ページのHTMLをファイル化するのみとなります。
/recruit/interview01.jpg
のように単なる画像ファイルを表すパスが指定された場合、このオプションのON/OFFは挙動に影響を与えません。ON/OFFに関わらず指定された画像ファイルが取得・反映されるのみとなります。この挙動は画像ファイルに限ったことではなく、画像以外のCSS/JavaScript/動画/PDF等その他の全てのファイルについても同様です。
2-3-2. 『同階層以下のファイルも取得する』
指定されたパスがページの場合、このオプションがONになっていれば、指定されたページだけでなくリンク先まで辿りながら静的化します。ただし、リンク先のパスが指定されたパスの下位層である場合に限ります。
例として /recruit/
というページのパスのみが指定され、このページのHTML中に以下のページへの<a>
タグリンクが記述されている場合を考えます。
- (A)
/recruit/page1/
- (B)
/recruit/page1/subpage2/
- (C)
/information/
この場合、指定された /recruit/
に加えて(A)(B)のみが静的化対象に追加されます。/recruit/
の下位層と見なされるからです。
一方で、(C)は指定されたパスである /recruit/
の配下ではないため静的化対象には含まれません。/recruit/
ページ中に /information/
へのリンクが貼られているから自動的に静的化してくれるだろう…と期待しないで下さい。
指定パスの静的化を行う際、オプション「同階層以下のファイルも取得する」をONにしても、自動的に静的化対象に含まれるのは、リンク先や参照先が指定されたパスの下位層にある場合に限られることに注意して下さい。
上記の(C)も静的化の対象にしたい場合、/recruit/
を指定するだけでなく以下のように明示的に追記する必要があります。
また、前述の画像等の関連ファイルも更新するのオプションがONになっている場合、下位層にあるかどうかの判断ルールは、画像やCSS等の関連ファイルにも適用されます。
例えば 「画像等の関連ファイルも更新する」「同階層以下のファイルも取得する」の両オプションがONの状態で /recruit/
というパスが指定され、/recruit/
ページのHTML中に以下の画像参照の記述がある場合を考えます。
- (A)
<img src="/recruit/images/interview01.jpg">
- (B)
<img src="images/interview02.jpg">
- (C)
<img src="/common/images/background.jpg
この場合、(A)は /recruit/
の下位層にある関連ファイルと見なされます。(B)はパス解決をすると /recruit/images/interview02.jpg
を意味しますので(A)と同じく下位層関連ファイルと見なされます。結果、指定された /recruit/
の静的化と一緒に(A)(B)の画像は自動的に取得されます。
一方で、(C)はたとえ /recruit/
ページのHTML中にimgタグが記述されているのだとしても無視されます。なぜなら、(C)のパスは /recruit/
の配下ではないからです。
指定パスの静的化を行う際は、オプション 「画像等の関連ファイルも更新する」「同階層以下のファイルも取得する」の両方をONにしても、HTML中に img タグを書きさえすれば何でも勝手に取り込まれる…とは期待しないで下さい。
(C)も画像も一緒に取り込みたい場合は、以下のように明示的に追記する必要があります。
このように、指定パスの静的化をページに対して行う場合、指定するページからリンク(または参照)されるものが、URLパス的に下位層にあるかどうかを常に意識する必要があります。下位層にないパスなら、そのパスは追記しなければなりません。
2-3-3. 『指定したパスを「設定 > 追加取得パス」に追加する』
指定されたパスを、設定の「追加取得パスとして」に自動的に追加します。
追加取得パスとは、サイト全体の静的化では静的化の対象に含まれないページやファイルがある時に使用する設定です。例えば以下のようなものが該当します。
- LPなどサイト内のどのページからもリンクが貼られていないページやファイル
- メルマガやSNSなどから誘導するURLでサイト内にリンクが存在しないページやファイル
これらのページやファイルを、次回サイト全体の静的化で行う際に一緒に静的化したい場合は、本オプションをONにして下さい。ONにせず、手動で設定画面から追加取得パスに追加しても構いません。追加取得パスについては静的化の設定の追加取得パスをご覧下さい。