Vite打包路径base配置项设置
一、问题描述:
在部署到服务器后开发环境下,刷新当前页面后,对于静态资源的请求路径没有从绝对路径发起请求,而是从相对路径拼接上了当前路由的一部分再请求,导致报错404并且当前页面空白,但是第一次进入当前页面时可以正常获取到路径
- 原本请求路径:http://192.168.10.7:xxxx/static/js/index-BTS333Wo.js
- 在这个页面下刷新之后的请求路径:
http://192.168.10.7:xxxx/acl/static/js/index-BTS333Wo.js
可以观察出多了一段路径,所以资源请求失败
二、原因:
base
配置项没有正确设置,此时我的配置如下
VITE_BASE = ./
当
VITE_BASE
设置为./
时,表示项目的公共基础路径是当前 HTML 文件所在的路径。这意味着所有静态资源的路径将相对于当前 HTML 文件的路径加载。
适用于部署到子路径:如果你的项目部署在网站的某个子路径下(例如
https://example.com/my-project/
),使用VITE_BASE = ./
可以确保静态资源的路径是相对于当前 HTML 文件的路径。资源路径:静态资源的路径将相对于当前 HTML 文件的路径,例如
https://example.com/my-project/static/js/main.js
。- 示例
部署路径:
https://example.com/my-project/
资源路径:
https://example.com/my-project/static/js/main.js
三、解决方法:
改为下方代码即可
VITE_BASE = /
当
VITE_BASE
设置为/
时,表示项目的公共基础路径是网站的根路径。这意味着所有静态资源(如 JavaScript、CSS、图片等)都将从网站的根路径加载。
适用于部署到根路径:如果你的项目部署在网站的根路径下(例如
https://example.com/
),使用VITE_BASE = /
是合适的。资源路径:静态资源的路径将从根路径开始,例如
https://example.com/static/js/main.js
。示例:
部署路径:
https://example.com/
资源路径:
https://example.com/static/js/main.js