这是我vite.config.js的配置:
这是我axios的配置:
这是我.env.test的配置:
这是我network的截图:
这是我vite.config.js的配置:
这是我axios的配置:
这是我.env.test的配置:
这是我network的截图:
3 回答4.2k 阅读✓ 已解决
6 回答1.9k 阅读✓ 已解决
3 回答1.6k 阅读✓ 已解决
2 回答1.5k 阅读✓ 已解决
2 回答1.7k 阅读✓ 已解决
2 回答1.3k 阅读✓ 已解决
3 回答1.2k 阅读✓ 已解决
可以啊,但是得看项目的构建配置。
从截图上面来看能猜测的原因是,请求的接口地址有问题。
/api/xxx
这样的使用浏览器拼接的形式。那么本地没有启动对应的服务自然会请求失败。EDIT
首先理解一下
npm run preview
这个命令有什么用。其实就是执行vite preview
这个命令。它会在本地启动一个devServer
的 HTTP服务,并指向到当前项目目录下的/dist
目录。并且会读取vite.config.js
中的preview
相关的配置做一些额外的操作,比如代理转发的服务。👉 预览选项例如说我们在
npm run dev
之前经常会在vite.config.js
中配置server.proxy
来进行代理转发避免本地开发过程中的跨域问题 👉 开发服务器选项如果OP你没有配置
preview
相关的配置。那么自然就不会启动代理转发的服务,仅仅会在/dist
目录中启动HTTP服务。就和我们在npm run dev
时没有配置server.proxy
是一样的。所以如果没有配置的话,会遇到以下几种情况:
/api/xx
那么浏览器会自动拼接成完整的http://localhost/api/xxx
这样去请求,我们当前启动的preview
服务并没有相关的接口服务,自然会请求失败。http://api.domain.com/api/xxx
那么就得看后端的接口服务是否允许localhost
这个域名访问,如果不允许的话,自然就是会被浏览器当成跨域请求拦截掉。所以如果你想使用
vite preview
来测试打包的产物是否可以正常执行,得在vite.config.js
中配置preview
相关的配置,并且你的axios
之类的 HTTP 请求库发起的请求得是正确的(也就是请求到vite preview
启动的HTTP代理上面,一般都是配置baseURL
为/
)。不然就会OP你在问题内容描述的请求失败。