Laravel新增路由访问报404错误,其余路由运行正常该如何解决?
Laravel访问/ads/favorites返回404问题解决方案
排查&修复步骤
- 第一步:清除路由缓存
Laravel开启路由缓存后,新增路由不会自动生效,先执行以下命令清除缓存:
清除完成后执行php artisan route:clearphp artisan route:list,查看路由列表中是否存在GET|HEAD /ads/favorites这条记录,确认路由被正常加载。 - 第二步:检查路由匹配优先级
虽然你当前的/ads/favorites路由定义在参数路由/ads/{id}之前,且/ads/{id}加了ID为纯数字的正则限制,理论上不会冲突,但如果有其他路由文件(如api.php、后台路由文件等)定义了前缀为ads的路由组,也可能导致匹配优先级错误,保持固定路径路由永远放在参数路由之前即可。 - 第三步:检查路由组前缀冲突
如果你当前这段路由代码是包裹在带有prefix('ads')的路由组中,那么你定义的/ads/favorites实际访问路径会变成/ads/ads/favorites,导致原路径404,这种情况把路由定义改成/favorites即可。 - 第四步:验证视图&控制器有效性
确认resources/views/ads/favorites.blade.php文件存在,同时确认FavoritesController的命名空间、index方法拼写没有错误,避免因类/方法加载失败被异常处理重定向到404。
内容的提问来源于stack exchange,提问作者Guy Nuriel
相关产品推荐
相关产品推荐

