Laravel 9部署至虚拟主机出现View [home.index]未找到错误求解决
解决Laravel 9上传虚拟主机后「View [home.index] not found」的问题
一、核对视图文件的路径与命名
- 确认
resources/views/home目录下存在index.blade.php文件,注意大小写:Linux环境的虚拟主机区分大小写,本地Windows开发不区分,很容易出现本地是Index.blade.php或Home目录,上传后因大小写不匹配找不到文件的情况。 - 检查控制器中调用视图的代码:确保是
return view('home.index');,对应路径必须是resources/views/home/index.blade.php,层级不能写错。
二、清理Laravel缓存
如果有SSH权限,在虚拟主机的项目根目录执行以下命令:
php artisan view:clear php artisan cache:clear php artisan config:clear
没有SSH权限的话,手动删除storage/framework/views下的所有缓存文件,同时清理storage/framework/cache、storage/framework/config里的缓存文件。
三、修正存储目录权限
确保storage和bootstrap/cache目录的权限设置正确,一般目录设为755、文件设为644,让Laravel拥有读写权限来生成视图缓存。
四、验证入口文件与重写配置
你的.htaccess和public/index.php配置逻辑没问题,但可以再确认:
.htaccess要放在项目根目录,而非public目录下,保证请求能正确转发到public/index.php。- 优先确认虚拟主机是否支持将网站根目录直接设置为项目的
public文件夹,这种方式比.htaccess转发更稳定;如果只能设置根目录为项目根,确保主机已开启mod_rewrite模块。
五、检查Composer依赖完整性
如果上传时未完整打包vendor目录,或上传过程中文件丢失,会导致视图加载异常。有SSH权限的话执行composer install重新安装依赖,无权限则本地完整打包vendor目录后重新上传。
内容的提问来源于stack exchange,提问作者urwxgrwx
相关产品推荐
相关产品推荐

