美文网首页
vue静态资源打包

vue静态资源打包

作者: 坏丶毛病 | 来源:发表于2020-12-31 10:16 被阅读0次

vue项目打包后,可能大家会注意到,会把一些文件都编译压缩到一起,但是打包后我们通常很难再去修改某些东西。

  1. 场景一:单点登录。当我们需要把部署包部署到不同的环境,但是有些环境往往不需要登陆的操作,那常规操作的情况下,我们就需要不开启登录的打包一份,然后开启登录后再打包一份
  2. 场景二:logo / 标题。当我们需要把部署包部署到不同的现场,每个地方可能对于的标题不一样,那我们不可能根据每个现场的标题去打包一份部署包。

类似的应用场景还有很多。

所以,vue官网为我们提供了一份应急手段,public文件夹(vue cli2中是static文件夹),它会保留这个文件夹中的原始文件,而不进行编译打包操作。

来看个例子:
我有个配置,我在main.js中根据这个配置(布尔值)需要判断是否启用登录,但是我不希望应用不同场景我都得去改代码然后再去重新打包。所以,我们在public文件夹中创建一个js文件(如config.js)

window.singleSignConfig = {
    loginUrl: 'http://1.2.3.4:10010',
    isOpenSingleSign: true,
    permissionValue: '234560200213',
};

然后在index.html文件中通过script标签的方式去引用这个文件

<script type="text/javascript" src="/config.js"></script>

之后,我们就可以在需要的地方可以通过window去使用这个配置,如我在mian.js中使用:

// 是否开启单点登录
if (window.singleSignConfig.isOpenSingleSign) {
    singleSignOn.init();
}

打包后在dist文件夹中我们就可以看到这个js文件,它并没有被打包压缩,而是保留了原始文件,我们在不同的环境就可以选择修改这份配置文件,这样就能达到不修改代码重新打包也能达到我们想要的效果了。


在这里插入图片描述
在这里插入图片描述

所以,我们可以根据不同的应用场景,生成不同的配置文件,达到不用二次打包也能对应不同环境的情况了。

其实,以上都不是本篇要讲的重点。

针对以上配置,我之前为了项目的logo(一张png图片),也放置在了public文件夹中,方便打包后进行修改。

但是我发现,图片即使放在public文件夹中,打包后更换图片(名字保持不变)、或者删除图片,但是依然显示的原始的图片,怎样都不会生效。
但是针对项目的icon文件,更换图片却是生效的。
对比两种写法不同,我发现了icon文件比较特别的地方,有个前缀BASE_URL

<link rel="icon" href="<%= BASE_URL %>favicon.png" />

所以,只要在img标签中也加入对应前缀,就会生效。看下写法:

<img class="logo" :src="`${publicPath}logo.png`" />

<script>
export default {
    data() {
        return {
            publicPath: process.env.BASE_URL,
        };
    },
};
</script>

这样就能解决我们logo图片打包后无法被替换或删除的问题。
官网解释:


在这里插入图片描述

期待能够对你有所帮助~~~
如有问题,请指出,接受批评。

相关文章

  • 解决vue cli3.0打包上线静态资源找不到路径问题

    解决vue cli3.0打包上线静态资源找不到路径问题 项目中遇到打包之后静态资源路径找不到,报如下错误: 解决方...

  • vue静态资源打包

    vue项目打包后,可能大家会注意到,会把一些文件都编译压缩到一起,但是打包后我们通常很难再去修改某些东西。 场景一...

  • Vue问题收集

    修改build打包时的静态资源路径 默认的,vue-cli打包后的静态资源路径为当前地址的根路径。有时候我们需要使...

  • vue 之 打包相关配置问题

    vue项目打包后,在发布项目时,浏览器会报错访问不到图片等静态资源,这里提供一个解决办法。 一、vue打包后静态资...

  • Vue CLI 3.0 整合 SpringBoot

    Vue CLI 3.0 整合 SpringBoot SpringBoot 静态资源配置在最后面 打包 将打包后di...

  • vue 项目打包发布tomcat 注意事项

    vue 项目打包 npm run build 如果不加. 比如放到tomcat webapps下 静态资源责默认本...

  • Vue项目发布到springboot中的系列配置

    一、配置vue打包参数 假设springboot的context-path为/ ,即根路径,那么我需要为静态资源分...

  • vue打包静态资源路径问题

    vue项目在打包的时候有时候会出现路径指向错误的问题,例如正常的文件路径应该是 /static/css/文件名...

  • Vue-cli的一个大坑

    Vue-cli的build命令,可以将代码打包成静态资源,放在dist文件夹。这个命令很方便。但是。。。。但是。。...

  • webpack基础使用(一)

    为现代JavaScript应用提供静态模块打包 Webpack 功能 打包:将不同类型资源按模块处理进行打包 静态...

网友评论

      本文标题:vue静态资源打包

      本文链接:https://www.haomeiwen.com/subject/pyjloktx.html