Laravel 8 访问自定义路由加载视图出现404错误如何解决?
Laravel 8自定义路由返回404排查方案
- 清理路由缓存
Laravel 生产环境会缓存路由配置,新增路由未更新缓存会触发404,执行命令清理缓存:php artisan route:clear
清理后执行路由列表命令确认路由是否注册成功:php artisan route:list
如果输出列表中存在talk.index对应的路由条目则注册正常。 - 核对访问路径
如果项目未配置虚拟主机,而是直接通过子目录访问,需要在路径中补全项目前缀,例如项目跑在http://localhost/laravel/public下,正确访问地址为http://localhost/laravel/public/talk;如果使用php artisan serve启动本地服务,默认访问地址为http://127.0.0.1:8000/talk。 - 检查文件大小写与路径
- 控制器文件需放在
app/Http/Controllers/目录下,文件名为TalkController.php,注意首字母大写,Linux环境对文件名大小写敏感,拼写错误会触发404。 - 视图文件需放在
resources/views/目录下,文件名为talk.blade.php,拼写错误可作为辅助排查项。
- 控制器文件需放在
- 排查路由组配置
确认你定义的Talk路由没有被包裹在带前缀的路由组中,例如路由如果写在以下结构中:
Route::group(['prefix' => 'api'], function () { Route::get('talk',[\App\Http\Controllers\TalkController::class,'index'])->name('talk.index'); });
则实际访问路径为/api/talk而非/talk。同时确认没有路由中间件拦截请求跳转到404。
- 检查重写规则配置
如果是Apache环境,确认已开启mod_rewrite模块,且public目录下存在Laravel默认的.htaccess文件,可尝试访问/index.php/talk测试,如果能正常打开则是重写规则配置异常导致的404。
内容的提问来源于stack exchange,提问作者arsene
相关产品推荐
相关产品推荐

