• VUE中asset与static的区别和打包时的区别


    参考:https://www.jianshu.com/p/8341edbc7436

    assets和static两个都是存放静态资源文件。
    assets中存放的静态资源文件在项目打包时,也就是运行npm run build时会将assets中放置的静态资源文件进行打包上传,
    打包后的静态资源文件最终也都会放置在static文件中跟着index.html一同上传至服务器。
    因此使用assets下面的资源,在js中使用的话,路径要经过webpack中的file-loader编译,路径不能直接写。引用时需要使用相对路径或者模块路径,
    而动态引用路径时写法:require("./[folder]/[filename]")

    static中放置的静态资源文件就不会要走打包压缩格式化等流程,而是直接进入打包好的目录,直接上传至服务器。
    即该目录下的资源不会被 webpack 处理,它们会被直接复制到最终的打包目录下(默认地址是 dist/static),所以引用时需要使用绝对路径。
    因为避免了压缩直接进行上传,在打包时会提高一定的效率,但是static中的资源文件由于没有进行压缩等操作,
    所以文件的体积也就相对于assets中打包后的文件提交较大点。在服务器中就会占据更大的空间。
    该目录下文件的绝对路径写法:/static/[filename]

    若把图片放在assets和static中,html页面中都可以使用;
    但是在动态绑定中,assets路径的图片会加载失败,
    因为webpack使用的是 ` commenJS ` 规范,必须使用require才可以

    <div class="myDemo">
        // 直接显示文件内容
        <h5>直接路径</h5>
        
        <img src="../assets/logo.png" title="assets中的图片">
        <img src="/static/logo.png" title="static中的图片">
        
        // 动态显示文件内容
        <h5>动态路径</h5>
        
        <img :src="asetUrl" title="assets中的图片">
        <img :src="sticUrl" title="static中的图片">
    </div>
    export default {
        name: 'myDemo',
        data (){
          return {
            asetUrl: require('../assets/logo.png'),
            sticUrl: '/static/logo.png'
        }
    }

    所以简单点使用建议如下:
    static中建议放一些外部第三方,因为这些引入的第三方文件已经经过处理,我们不再需要处理,直接上传。
    自己项目中的一些js、css放到assets中。

  • 相关阅读:
    Android Studio学习笔记(1)
    2019全国大学生电子设计大赛总结
    包与常用模块
    模块
    迭代器、生成器与递归调用
    叠加多个装饰器与有参数的装饰器。
    装饰器
    控制指针的移动、函数
    字符编码
    python 数据类型之列表、元组、字典、集合
  • 原文地址:https://www.cnblogs.com/Zzbj/p/15423035.html
Copyright © 2020-2023  润新知