パスの書き換え
本CMSでは、/themes/テーマ/ がドキュメントルート相当として扱われます。
そのため、静的サイトをそのまま themes 内に置いても動作するよう、テンプレート内のパスを自動で書き換える機能があります。
書き換え対象
パスの書き換えには、次の2種類があります。
1. ファイル指定の書き換え
対象となるのは以下の要素や属性です。
<!-- include file="" -->インクルードパスsrc属性をもつHTML要素 (img|input|script|frame|iframe|audio|video|embed|track|source)poster属性をもつHTML要素 (video)data属性をもつHTML要素 (object)srcset属性link要素imagesrcset属性をもつlink要素object/applet要素background属性style属性および<style>タグ内の CSSurl()meta要素のcontent属性(OGP のog:image/og:audio/og:video等、Twitter Card のtwitter:image、Wdows Tile のmsapplication-*)SVG の
<image>,<use>要素のhref/xlink:href属性#で始まるシンボル参照は除く)
書き換え仕様(ファイル指定)
スキーマ(
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