パスの書き換え
本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