1、现象

在vue项目部署后,出现如下错误:

2、原因

网上查了许多,说的问题也很多,这里说下我的问题原因

其实说白了,是因为我的vue.config.js中配置了属性

module.exports = {
    // 基本路径
    publicPath:'/demo/',

然后就导致了,在我打包好的index.html中的所有静态资源,*.js、*.css等,在其路径上都会给我配置了这个路径

下面是index.html的片段

<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width,initial-scale=1">
    <link rel="icon" href="/syzz/favicon.ico">
    <title>syzz-web</title>
    <link href="/demo/static/js/about.8a473333.js" rel="prefetch">
    <link href="/demo/static/css/app.6faa8042.css" rel="preload" as="style">
    <link href="/demo/static/css/chunk-vendors.767f701c.css" rel="preload" as="style">
    <link href="/demo/static/js/app.f28a5edd.js" rel="preload" as="script">
    <link href="/demo/static/js/chunk-vendors.74b6dafe.js" rel="preload" as="script">
    <link href="/demo/static/css/chunk-vendors.767f701c.css" rel="stylesheet">
    <link href="/demo/static/css/app.6faa8042.css" rel="stylesheet">
</head>

而实际上,index与静态资源的位置是这样的》

这下就明白了,根据网上的说法,让我把  publicPath:'./',即可,可问题是我想我的项目根路径是我指定的,怎么办?

3、解决办法

目前采用了一种比较笨的办法:

一,手动将index.html文件中的静态资源路径修改了,其实替换也挺快(亲测,可以)

二,把index.html文件在向上提一个目录(这个方法没测)。

三,在项目本身进行自动配置,还没找到,找到了后补。。。。

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐