Laravel路由控制器报错:视图[newpage.blade.php]未找到求助
解决Laravel中"View [newpage.blade.php] not found"的报错
嘿,这个问题我刚接触Laravel的时候也踩过一模一样的坑!咱们一步步拆解问题和解决办法:
问题根源
你配置了路由Route::get('newpage','myindex@index'),当访问/newpage时,Laravel会调用myindex控制器的index方法。如果你的index方法里写了return view('newpage');,Laravel就会自动去resources/views目录下查找newpage.blade.php文件——但你显然还没创建这个文件,所以就触发了FileViewFinder.php里findInPaths方法抛出的InvalidArgumentException。
具体解决办法
你有两种选择,完全取决于你的实际需求:
选项1:创建对应名称的视图文件
如果你的目标就是让这个路由加载newpage.blade.php视图:
- 打开项目目录里的
resources/views文件夹 - 在里面新建
newpage.blade.php文件,先写点测试内容验证:
<!DOCTYPE html> <html> <head> <title>我的新页面</title> </head> <body> <h1>成功加载newpage视图啦!</h1> </body> </html>
- 刷新页面(如果用
php artisan serve启动服务,直接刷新就行),再访问/newpage就正常了。
选项2:修改控制器方法加载对应控制器的视图
如果你的逻辑是想让myindex控制器的index方法加载自身对应的视图:
- 先在
resources/views下新建一个myindex文件夹 - 在
myindex文件夹里创建index.blade.php文件,写入测试内容 - 打开
myindex控制器,把index方法的代码改成:
public function index() { return view('myindex.index'); }
- 再次访问
/newpage,就能看到正确的视图内容了。
额外小技巧
如果这个路由只是单纯加载视图,不需要控制器处理业务逻辑,你可以直接用Route::view简化配置:
Route::view('newpage', 'newpage');
当然,前提还是要确保resources/views/newpage.blade.php存在哦。
内容的提问来源于stack exchange,提问作者Salim Maulaie
相关产品推荐
相关产品推荐

