为什么我的Laravel路由在生产服务器中无法正常工作?
这是典型的Laravel生产环境路由注册匹配问题,可按以下步骤排查解决:
- 第一步:清除重建路由、配置缓存
Laravel生产环境默认会启用路由、配置缓存提升性能,修改路由或配置后如果没有更新缓存,会出现路由已定义但无法识别的问题。在生产服务器项目根目录依次执行以下命令即可:
本地/测试环境通常不会开启缓存,所以不会触发该问题。php artisan route:clear php artisan route:cache php artisan config:clear php artisan config:cache - 第二步:核对路由名称大小写
Linux生产环境大小写敏感,而Windows/macOS本地/测试环境大小写不敏感。请确认web.php中定义的路由名email.send和模板中route('email.send')的参数大小写完全匹配,没有大小写拼写错误。 - 第三步:确认生产环境代码同步
检查生产服务器上的routes/web.php文件是否和本地/测试环境版本一致,排除部署时文件漏传、覆盖错误的问题,同时确认ContactController文件路径、命名空间和本地完全一致。 - 第四步:核对路由注册信息
执行php artisan route:list,找到对应POST send请求的路由条目,确认其Name字段的值完全等于email.send,如果有外层路由组设置了名称前缀,需要同步修改模板中route()的参数为完整路由名。
内容的提问来源于stack exchange,提问作者Albert Ndizeye
相关产品推荐
相关产品推荐

