環境
- さくらVPSサーバー CentOS7
- Laravel 10.4.1
- PHP 8.2.4
事象
ローカル環境(xampp)で開発したLaravelアプリをサーバーにデプロイしようとしたところ、「View ['フォルダ名,ファイル名'] not found.」のエラーが発生。→「View ['Layouts,(ファイル名)'] not found.」
ちなみにパスはあっておりviewファイルも存在している。
ローカルでは同じフォルダ構成、同じソースで問題なく動いている。
原因・解決
-
linuxサーバーでは、大文字小文字を区別するシステム(ローカルは区別しない)だったことが原因だった。
-
ローカル環境では、viewファイルから
@extends('Layouts.ファイル名')
との呼び出しの記載で動いていた。
呼び出される実際のローカルのフォルダは
\Laravelapp\resources\views\layouts -
linuxサーバー上では、フォルダ名が layouts だったため、
@extends('Layouts.ファイル名')
での呼び出しでは、大文字小文字を区別して、そのviewは見つからない、とのエラーになっていた。 -
今回の場合、(viewファイルすべての記載を、layoutsに書き換えるのも手間だったので)サーバーのフォルダ名の方を
layouts →Layouts と大文字始まりに変更することで解決した。
→mvコマンド 例)mv 変更前 変更後
※このエラーは、同様のものが複数発生した。サーバー側を変えると影響がでてまずい場合、Laravel側の記載を変更することも検討される。