vite 打包生成的文件如果直接放在服务器中是可以正常访问的,但是本地直接访问打包生成index.html文件就会提示以下问题。
访问的文件不存在,主要是因为路径配置问题。
提示跨域问题,不支持files协议,主要是因为esModule问题。
问题1:访问的文件不存在,主要是因为路径配置问题。
解决:在 vite.config.js文件中配置
主要:打包静态文件必须是根路径,否则放到服务器找不到静态资源(同理于webpack中的publicPath 的配置)
解决方法:
在vite.config.ts中设置:base: "./"具体代码如下
import { defineConfig } from 'vite' import vue from '@vitejs/plugin-vue' import { resolve } from 'path' // https://vitejs.dev/config/ export default defineConfig({ base: "./", //等同于 assetsPublicPath :'./' plugins: [vue()], // 设置文件./src路径为 @ resolve: { // 设置文件./src路径为 @ alias: [ { find: '@', replacement: resolve(__dirname, './src') } ], dedupe: [ 'vue' ] }, })
复制
再次打包问题解决——