Movable Typeでサーバ上のファイルをテンプレートとして読み込める「ファイルへのリンク」の機能を使ってみます。
設定方法
まずはテンプレートとして使用するファイルをアップロードします。
今回はtest.htmlという名前で、以下のような内容で作成しました。
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> </head> <body> test </body> </html>
ファイルの文字コードはUTF-8、改行コードはLFを指定してください。
このファイルをサーバに設置しますが、今回は設置テンプレートを作成するサイトのサイトパス内にtemplateディレクトリを作成して、その中にファイルを設置します。
次にインデックステンプレートを新規で作成します。
「テンプレートの内容」は空の状態で、「ファイルへのリンク」に先ほど設置したファイルを指定します。
指定方法は絶対パス(「/」始まりのサーバ上のパス)が推奨されているようですが、サイトパスを基点にした相対パス(「../」で階層をあがったり、「template/test.html」の指定など)も可能のようです。
サイトパスは設定 > 全般 内の 公開パス > サイトパス から確認できます。
この状態で保存を行うと、「テンプレートの内容」の中身が設置ファイルの内容になりました。
テンプレートの優先順位
通常のテンプレートの内容はデータベース上で管理されていますが、ファイルへのリンクを設定した場合、データベースに加えてサーバ上のファイルでも管理する形になります。
テンプレート編集画面からとファイルからの2か所で変更ができることになるので、それぞれで変更した場合の挙動などを確認してみます。
テンプレート編集画面から変更した場合
まずはテンプレート編集画面から「テンプレートの内容」を変更して、「変更を保存」や「保存と再構築」を行った場合です。
この場合は通常通りデータベース上のテンプレート内容を変更した上で、サーバ上のファイル内容も変更されます。
次に「テンプレートの内容」を空にした状態で、「変更を保存」や「保存と再構築」を行った場合です。
この場合はサーバ上のファイル内容でデータベースの内容を変更する形になり、テンプレート編集画面でテンプレート内容は空になりませんでした。
サーバ上のファイルを変更した場合
次にサーバ上のファイルを変更した場合を試してみます。
サーバ上のファイルを変更した状態でテンプレート編集画面にアクセスすると、テンプレート内容はファイルの変更した内容で表示されます。
ただこの時点ではデータベース上のテンプレート内容は変更されておらず、サーバ上のファイルの方が優先順位が高いため、サーバ上のファイルの内容が表示されているようです。
この状態でテンプレート編集画面で「変更を保存」や「保存と再構築」をクリックするか、「再構築」を行うと、データベース上のテンプレート内容も変更されます。
次にサーバ上のファイルの内容を空(0バイト)にする、あるいはファイル自体を削除して参照できなくした場合です。
この場合はサーバ上のファイルではなくデータベースを優先するようで、テンプレートの編集画面でテンプレート内容が空にはなりませんでした。
このあたりの挙動について詳しくは公式のマニュアル内にまとめられた表がありますので、詳しくはそちらを参照ください。
コメントが承認されるまで時間がかかります。