314 字
2 分钟
vite部署到nginx的一些常见问题

路由问题#

vue router运行在hash模式下,会有/#/,觉得很丑,然后就运行在了history模式下,但是,这么模式下需要注意一些问题: 如果你没有在nginx里配置好的话,就会导致刷新页面404。 所以,需要在nginx里配置好try_files:

location / {
try_files $uri $uri/ /index.html;
}

api代理问题#

相信大家在使用vite的过程中为了隐藏后端真实网址使用过vite的代理服务器吧,类似于这种

proxy: {
'/api': {
target: 'http://localhost:port/',
changeOrigin: true
}
}

我当时认为,只要在vite里配置好代理就不需要操心了,我在main.js里配置了一些init方法,如果init报错就不创建App。其次,我也配置了上文提到的try_files,所以这就导致了看不到任何的404报错,最后去除掉try_files才定位到问题。 所以,即使在vite里配置好代理,也仅限于开发的情况下有效,在项目上线时仍然要在nginx里配置代理:

location /api/ {
proxy_pass http://localhost:port/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}

nginx会把/api/给删除,所以需要注意一下你的后端配置。 这下就可以正常访问后端接口了

vite部署到nginx的一些常见问题
https://blog.zhenxuna.cn/post/8/
作者
与你道晚安
发布于
2024-12-20
许可协议
CC BY-NC-SA 4.0

分享文章

生成精美分享图或复制链接,与更多人分享本文。

继续浏览

沿着主题读

基于共同的标签与分类

换条路线

从其他文章中稳定抽取