为什么Nuxt.js的Axios代理配置在生产服务器上不生效?
问题核心原因
@nuxtjs/proxy 是Nuxt开发服务器的专属中间件,仅在本地dev运行模式下生效,生产环境打包部署后,这套代理逻辑不会被加载,这就是你本地正常、线上代理失效的根本原因,生产环境的路径改写需求需要直接在Nginx侧配置实现。
你的Nginx配置确实是故障直接诱因
你当前的Nginx配置中,location /api 规则直接把所有/api前缀的请求转给Laravel处理,没有做你需要的路径改写逻辑,所以请求不会自动跳到/api/v1前缀的路径下。
解决步骤
- Nuxt侧的代理配置可以保留,不影响本地开发使用,无需额外修改
- 修改Nginx配置中的
location /api块,添加路径重写规则:
location /api { # 把所有 /api/xxx 的请求重写到 /api/v1/xxx rewrite ^/api/(.*)$ /api/v1/$1 break; try_files $uri $uri/ /index.php?$query_string; }
- 保存配置后执行
nginx -t验证语法是否正确,确认无误后执行nginx -s reload重载配置即可生效。
补充说明
如果后续你需要调整代理规则,生产环境都直接修改Nginx的重写逻辑即可,不需要再改动Nuxt的代理配置。
内容的提问来源于stack exchange,提问作者user3540430
相关产品推荐
相关产品推荐

