• 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 

  • 相关阅读:
    Windows下的SASS环境搭建
    cocos开发环境搭建
    cocos2d-x中描述精灵帧图片的plist和json文件各个key的含义
    seajs模块路径解析 简单总结
    【LESS系列】内置函数说明
    Zepto自定义模块打包构建
    【LESS系列】高级特性
    【LESS系列】三角形Mixins
    关于delete和对象复制
    vue使用技巧
  • 原文地址:https://www.cnblogs.com/rainbowLover/p/13748639.html
Copyright © 2020-2023  润新知