🍎
a-blog cms で @extends('/index.html') と書いたテンプレートを表示すると404 エラーが発生する
表題の通り、a-blog cmsをインストールしている場合、@extends('/index.html') と書いたテンプレートを表示すると404 Not Found エラーが発生するケースがありましたので、原因と対策を記事にしました。
404エラーが発生するテンプレート
以下のように、index.html を継承させるテンプレートのページを表示する場合に404エラーが発生します。
@extends("/index.html")
原因
ドキュメントルートに index.html が存在していたことが原因でした。
パスの書き換えという機能の仕様により、“/”から始まるパスはドキュメントルートからみて一致するパスのファイルが存在した場合、パスの書き換えが行わないため、 @extends('/index.html')
は ドキュメントルート直下の index.html を継承するという指定になってしまうことにより、意図しない index.html が継承され404 Not Found エラーとなっているようです。
この場合、意図した動作としては、利用テーマ直下のindex.htmlを継承させるようにすることになります。
対策
ドキュメントルートのindex.htmlを削除する or 先頭のスラッシュを削除することで正常に動作させることができた。
@extends("index.html")
また、このパスの書き換えの仕様はテンプレートの継承機能に限った話ではないので注意が必要です。
参考
Discussion