テンプレート書き出し機能(静的ファイルとして出力)

ここでは、a-blog cmsの動的ページを静的ファイルとして出力する設定内容について説明します。

たくさんモジュールが記述してあるテンプレートのページやヘッダー、フッターなどあまり更新しないパーツに対してテンプレート書き出しを行うとページを表示するときにモジュールの実行回数を減らすことができ、パフォーマンス向上につながりますので、重いページなどあった場合は検討してみましょう。

テンプレート書き出しするページと出力先を設定する

管理画面 > テンプレート書き出し に移動。テンプレート書き出し設定は、ルートブログのみで設定できます。


[キャプチャ] 管理画面内テンプレート書き出し設定画面

テンプレート書き出し設定画面


生成元URI、出力先パスの3つの項目を入力します。

生成元URI
静的ページとして書き出しをしたいページのURIを、http:// または acms:// から入力します。
出力先パス
生成元URIの内容を、ここで指定した themes内に、指定したファイル名で出力します。
生成範囲
静的ファイルとして出力する場合は「全て」を選択します。レイアウトモジュールがあるテンプレートを書き出しする場合に「レイアウトのみ」を選択するとレイアウトモジュールだけ解決された動的テンプレートを書き出しするようになります。

テーマ設定で使用しているテーマと、出力先パスで選択するテーマは同じものとしてください。静的ファイルは選択したthemes内に、指定したファイル名で出力されます。

また、出力先のthemesには、書き込み権限を設定してください。

出力先に同名ファイルがあった場合は、新しい内容が上書きされます。ファイルの管理に、十分に気をつけて実行してください。

子ブログでのテンプレート書き出し

ルートブログより下の子ブログでは、親ブログで[直接の子ブログでのテンプレート書き出しを許可する]にチェックをすることで、テンプレート書き出しが可能になります。デフォルトでは、子ブログでのテンプレート書き出し実行は禁止されています。

これは直接の親子関係をもったブログ間でのみ有効な設定です。ブログの階層が深くなる場合はそのたびに同様の設定が必要です。

書き出しする

同ページにある、「テンプレート書き出しを実行する」ボタンを押す事で、設定されているファイルをすべて作り直します。ファイルやデータに更新があった場合に実行しましょう。

10月12日(水) a-blog cms 勉強会 in 大阪を開催しました。

10/12(水)に JUSO COWORKING にてa-blog cmsの勉強会を開催しました。14:00から20:00までという長丁場の勉強会でしたが、ほぼみなさん最初から最後まで休みをほとんどとらずに熱心に勉強されていました。みなさん大きくレベルアップしたと思います。

また、18:00からはJUSO COWORKINGのバーイベントと重なり、アルコールを片手に事例紹介について、質問をぶつけたりa-blog cmsと連携できるサービスについて語り合いました。

勉強会の様子

テーマディレクトリ外のディレクトリのパスでファイルを表示する

テーマディレクトリ外のディレクトリのパスで静的なファイルを表示する方法

a-blog cms設置してあるサイトでは、表示するテーマ内のディレクトリは通常カテゴリーとして扱われます。テーマ内にカテゴリーと同名のディレクトリを設置することで、カテゴリー固有のテンプレートで表示ができます。
しかし、a-blog cms を介さず、テーマディレクトリ外の静的なファイルを表示したいケースもあります。ここではこのような場合の対応方法について解説します。

a-blog cms のテンプレート設定と基本的な動き

テーマの設定で各ページで使用するファイルの設定とファイル構成がこのような内容であった場合


ページで使用するファイルの設定例

ページで使用するファイルの設定例


前提として、special というカテゴリー、子ブログは無いものとします。
このような状態で
http://www.example.com/special/ を表示しようとした場合、a-blog cms はindex.html を表示せず、special というカテゴリーまたは子ブログを探して、Not Found を表示してしまいます。

config.system.yaml に設定を追加して対応

http://www.example.com/special/ というURLで /special/index.html を表示するために、config.system.yaml というファイルに設定を追加します。config.system.yaml はa-blog cms設置ディレクトリ内の /private/config.system.yaml にあります。

directory_index   : []

config.system.yaml 内の上記の部分を以下のように変更します。

directory_index   : [index.html]

こうすることで、テーマディレクトリ外のディレクトリを直接指定した場合に、index.html を表示する、という設定になります。

設定の応用

今回の例では index.html を追加しましたが、以下のようにカンマ区切りで複数記述することで、優先順位をつけて設定することができます。以下の例では、index.html が無かった場合index.htm を表示するものとなります。

directory_index   : [index.html,index.htm]