Laravel 8 子目录下新建页面出现视图找不到、404等问题咨询
Laravel 8 「关于我们」页面配置报错解决方案
错误根因说明
- 「View [about] not found」报错
view()方法默认从resources/views/根目录查找视图文件,视图存放在子目录时需要使用点语法指定层级。你直接写view('about')只会查找根目录下的about.blade.php,无法匹配到about子文件夹内的文件,因此抛出异常。 - 修改路由后返回404
Laravel路由匹配逻辑不区分路径开头是否带/,404并非路由写法导致,本质是视图配置错误、路由缓存未清理等问题引发的连锁反应。 - 重命名为
index.blade.php后显示首页样式
当resources/views/下存在about子目录时,view('about')会默认加载该子目录下的index.blade.php,因此不再报错。显示首页样式通常是因为该文件继承了首页的布局模板且未重写内容,或是旧路由、视图缓存未清理导致旧内容生效。
正确操作步骤
- 还原视图文件名,最终文件路径保持为
resources/views/about/about.blade.php - 修改
routes/web.php中的路由配置,用点语法指定子目录层级的视图路径:
Route::get('/about', function () { return view('about.about'); });
- 在项目根目录执行以下命令清理缓存,避免旧规则生效:
php artisan route:clearphp artisan view:clear - 直接访问站点域名加
/about路径即可正常加载页面
如果不需要单独的子文件夹管理视图,也可以直接将about.blade.php放在resources/views/根目录下,此时view('about')的原生写法即可正常生效。
内容的提问来源于stack exchange,提问作者LaravelBeginer
相关产品推荐
相关产品推荐

