zoukankan      html  css  js  c++  java
  • vue打包后引入js和css用相对路径引入

    vue打包后html引入的js和css默认是绝对路径的,如下:

    <script src=js/app.f316dda1.js>

    现在需要打包后是这样的:

    <script src=./js/app.f316dda1.js>

    需要怎么配置呢?

    查看文档说把publicPath设置为'./'就可以了 ,

    但设置后还是不行,还是绝对路径,

    设置为'./static/'后,打包生成的是:

    <script src=static/js/app.f316dda1.js>

    它好像是把'./'给去掉了,

    于是我就有个大胆的想法:

    将publicPath设置为:'././'

    试一试 果然可以了。

    咋子回事嘛?

    在方法loadUserOptions中有这么一行:

        // normalize some options
        ensureSlash(resolved, 'publicPath')
        if (typeof resolved.publicPath === 'string') {
          resolved.publicPath = resolved.publicPath.replace(/^.//, '')
        }

    意思就是说,你要是传进来的publicPath是以'./'开头的,我就把你开头这个'./'给换成'',

    这也印证了以上的猜想。

    总结:

    想要将打包后的绝对路径改为相对路径,就得在vue.config.js里边(没有这个文件的在package.js同级目录新建一个)里边加上:publicPath: '././'即可:

    module.exports = {
      publicPath: '././',
      outputDir: 'dist'
    }

    over

    补充:

    这样测试时候会有问题 , 项目跑不起来, 

    优化改成这样:

    module.exports = {
      publicPath: process.env.NODE_ENV === 'development' ? './' : '././',
      outputDir: 'dist'
    }

    over 

  • 相关阅读:
    知识的本质
    福克斯保养注意事项及驾驶技巧
    转 网络编程
    Linux系统下安装 apache2.4的过程
    代码静态检查工具PCLint运用实践
    gcc编译系统
    量子计算机:决胜21世纪的利器
    关于ETL工具、方案的认识
    《HTTP: The Definitive Guide》读书笔记
    ArrayList(转用法)
  • 原文地址:https://www.cnblogs.com/rainbowLover/p/13748639.html
Copyright © 2011-2022 走看看