Laravel 6设置页面配置正确但访问返回404错误求助
排查解决步骤
- 第一步先清理路由缓存:
运行命令php artisan route:clear清除已缓存的路由配置,Laravel 6 如果开启过路由缓存,新增的路由不会自动生效。清理后执行php artisan route:list,查看列表中是否存在你配置的几个/pages/*的设置类路由,确认路由路径、关联的控制器方法是否匹配。 - 第二步检查路由排列顺序:
查看web.php中你写的这几个设置类路由的上方,是否存在前缀为/pages的占位符路由(例如Route::get('/pages/{param}', ...)),Laravel 路由是从上到下优先匹配,占位符路由如果放在具体路由前面,会直接拦截后续所有匹配前缀的请求导致404。如果有这类情况,把具体路由移到占位符路由的上方即可。 - 第三步检查访问URL的大小写:
你配置的路由路径用了驼峰命名(如emergencySettings),如果是部署在Linux系统环境,路由是区分大小写的,访问时输入的URL需要和路由配置的大小写完全一致,小写的/pages/emergencysettings是无法匹配到路由的。 - 第四步检查静态资源路径冲突:
查看项目public目录下是否存在名为pages的文件夹,且文件夹内有和路由后缀同名的文件/文件夹,Web 服务器会优先匹配静态资源路径,匹配不到才会转发请求给Laravel,存在同名静态路径的话会直接返回404。 - 第五步检查Web服务器伪静态配置:
确认你的Nginx/Apache 配置已经正确将所有非静态资源请求转发到Laravel入口文件public/index.php,避免子路径请求无法被框架识别。
内容的提问来源于stack exchange,提问作者Da Rosc
相关产品推荐
相关产品推荐

