解决打包问题--出现404问题

博客讲述了Vue项目中publicPath配置的重要性,它影响index.html引用资源的路径。在开发环境使用'/',生产环境需使用'./'。通过process.env.NODE_ENV判断运行环境,实现动态配置。确保在不同环境下正确加载资源。
摘要由CSDN通过智能技术生成

原因:

1.默认打包,index.html引入其他打包的文件使用的是绝对地址,

地址是以/开头(要找到当前index.html打开时所在服务器的根地址(文件夹))。

就得确保你的vscode+liserver插件打开时,vscode根目录的直接是dist文件夹。

你如果把dist文件夹交给后台运维工程师部署到服务器上,dist下内容就得在服务器根目录才行,

但是服务器一般会有多个项目,不让你同根目录直接放1个项目。


解决:webpack让你写一个配置想publicPath(控制index.html引入其他资源的前缀地址)

vue.config.is(脚手架配置文件,webpack配置文件)

publicPath:默认值'/'确保开发环境下,是这个值,因为开发服务器会把所有打包在内存里面而且作为服务器的根目录文件夹,既结对地址

生产环境准备上线了,这个时候,就得用相对地址,publicPath:'./'

路劲不以/开头,就是以./开头(默认)

module.exports = defineConfig({
  // 影响打包时,index.html引入其他资源的前缀地址
  // ./可以让开发环境和生产环境都可以正常使用
  // 为了严谨一些
  // 开发环境:'/'
  // 运行环境:'./'
  // 问题:有无代码可以让他自己识别当前运行环境?
  // 解决:node里有个内置的环境变量process.env.NODE_ENV
  // process.env.NOOE_ENV他会根据你敲击的命令,来使用不同的值
  // 如果你敲击的是npm run serve,process.env.NODE_ENV的值就是‘developmengt’字符串
  // 如果你敲击的是npm run build,process.env.NODE_ENV的值就是‘production’字符串
  // ------------------
  // 方法一:不严谨
  // publicPath: './'
  // -----------------
  // 方法二:
  publicPath: process.env.NODE_ENV === 'production' ? './' : '/'
}

总结:

// 1.publicPath:影响的是打包(webpack开发服务器/dist)的时候index.html引入其他资源的前缀地址

// 情况1:开发环境,值:'/'绝对路径

// 情况2:生产环境,值:'./'(才能确保dist/index.html相对路径下访问)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值