パスの書き換え
本CMSでは、/themes/テーマ/ がドキュメントルート相当として扱われます。
そのため、静的サイトをそのまま themes 内に置いても動作するよう、テンプレート内のパスを自動で書き換える機能があります。
書き換え対象
パスの書き換えには、次の2種類があります。
1. ファイル指定の書き換え
対象となるのは以下の要素や属性です。
{{ include('xxx') }}インクルードパスimg/input/script/frame/iframe要素のsrc属性srcset属性link要素object/applet要素background属性
書き換え仕様(ファイル指定)
スキーマ(
http://等)から始まる場合 → 書き換えない/のみの場合 → 書き換えない/から始まり、ドキュメントルートから探索して見つかった場合 → 書き換えない/から始まり、a-blog cms設置ディレクトリから探索して見つかった場合 → 書き換える/から始まらない場合で、テンプレートからの相対パスとして探索して見つかった場合 → 書き換える上記に当てはまらず、継承テーマから探索して見つかった場合 → 書き換える
2. アンカー類の書き換え
対象となるのは以下の属性です。
a要素のhref属性form要素のaction属性
書き換え仕様(アンカー類)
空の場合 → 書き換えない
スキーマ(
http://等)から始まる場合 → 書き換えない#から始まる場合 → 書き換えない/から始まらない場合 → 書き換えないa-blog cms設置ディレクトリのパスから始まっている場合 → 書き換えない
上記に当てはまらない場合 → ブログコードからのパスに書き換える
書き換えを行わない設定
このパス書き換えは便利ですが、全ブログで共通するリンクやグローバルナビなどでは、書き換えを行いたくない場合があります。
<a href="/">HOME</a>このコードが子ブログ内にあると、http://ドメイン/子ブログコード/ のトップページへのリンクに書き換わってしまいます。
書き換えを防ぐ方法
アンカー類のパス書き換えを行いたくない場合は、要素に acms_no_rewrite 属性を付与します。
<a href="/" class="acms_no_rewrite">HOME</a>class以外にも、独自データ属性などで指定可能です。識別子
acms_no_rewriteは、config.system.yamlで変更できます。
acms_no_rewrite: custom_identifier