详解vue2.0 资源文件assets和static的区别

 更新时间:2018年11月27日 17:04:44   作者:yuhehanfeng  
这篇文章主要介绍了详解vue2.0 资源文件assets和static的区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

Webpacked 资源

我们首先需要理解webpack是怎样处理静态资源的。在*.vue组件中,所有的templates和css都会被vue-html-loader 和 css-loader解析,寻找资源的URL。

举个例子,在<img src="./logo.png">background: url(./logo.png), "./logo.png"中,都是相对资源路径,都会被Webpack解析成模块依赖 。

由于logo.png不是JavaScript,当被看成一个模块依赖的时候,我们需要使用url-loader 和 file-loader进行处理。 该模板已经配置好了这些loaders,所以你能够使用相对/模块路径时不需要担心部署的问题。

由于这些资源可能在构建的时候被内联/复制/重命名, 所以它们从本质上来说是你源码的一部分。这就是为什么我们建议将交由webpack处理的静态资源和其它源文件一样放在/src路径下面。

实际上,你甚至不需要把它们全都放在/src/assets路径下:你可以基于模块/组件的使用来组织文件结构。例如,你可以把每个组件和属于它的静态资源放在它自己的目录下。

资源处理规则

相对URL, ./assets/logo.png 将会被解释成一个模块依赖。它们会被一个基于你的Webpack输出配置自动生成的URL替代。

没有前缀的URL, assets/logo.png 将会被看成相对URL,并且转换成./assets/logo.png

前缀带~的URL 会被当成模块请求, 类似于require('some-module/image.png'). 如果你想要利用Webpack的模块处理配置,就可以使用这个前缀。例如,如果你有一个对于assets的路径解析,你需要使用<img src="~assets/logo.png">来确保解析是对应上的。

相对根目录的URL, /assets/logo.png 是不会被处理的.

测试总结:

1.采用相对路径,程序内部自己编写的样式和图片,一般放在assets文件夹下。

top.vue中要引入图片assets/images/home/photo.png,可以这样写img

<img src="../../assets/images/home/photo.png" />

本地dev渲染后,图片路径:(被打包放在静态文件夹static的img下了)

build项目后,打开后图片路径:(静态文件夹的相对路径)

2.采用webpack中的alias设置路径别名。

top.vue中可以这样调用:(图片放在static/images/home文件夹下)

<img src="~images/home/logo.png" />

项目dev后,也会被编译成:

个人感觉第一种更直观一些。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • vue项目在env文件中设置的变量无效问题及解决

    vue项目在env文件中设置的变量无效问题及解决

    这篇文章主要介绍了vue项目在env文件中设置的变量无效问题及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-03-03
  • vue3.0项目小白填坑之vue3.0+vite获取环境变量

    vue3.0项目小白填坑之vue3.0+vite获取环境变量

    Vue3项目使用vite作为打包工具时,环境变量可以保存在.env文件中,在build时进行解析,这篇文章主要给大家介绍了关于vue3.0项目小白填坑之vue3.0+vite获取环境变量的相关资料,需要的朋友可以参考下
    2024-03-03
  • nvue页面用法uniapp使用场景

    nvue页面用法uniapp使用场景

    Nvue是一个基于weex改进的原生渲染引擎,它在某些方面要比vue更高性能,在app上使用更加流畅,这篇文章主要介绍了nvue页面用法uniapp,需要的朋友可以参考下
    2023-12-12
  • 如何在vite里获取env环境变量浅析

    如何在vite里获取env环境变量浅析

    开发中经常会使用环境变量,Vite相比于Webpack也有一定的变化,下面这篇文章主要给大家介绍了关于如何在vite里获取env环境变量的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-10-10
  • Vue中一个组件调用其他组件的方法详解(非父子组件)

    Vue中一个组件调用其他组件的方法详解(非父子组件)

    vue中最常见子父组件产值,大家一定都很熟悉,最近项目中碰到非父组件中调用子组件方法的问题,这篇文章主要给大家介绍了关于Vue中一个组件调用其他组件的方法(非父子组件),需要的朋友可以参考下
    2022-10-10
  • 什么是Vue.js框架 为什么选择它?(第一课)

    什么是Vue.js框架 为什么选择它?(第一课)

    Vue.js框架是什么,为什么要选择它?这篇文章为大家介绍目前前端技术使用的趋势,以及Vue.js的优点和适用场景等,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-10-10
  • 一文彻底搞懂Vue的MVVM响应式原理

    一文彻底搞懂Vue的MVVM响应式原理

    这篇文章主要介绍了一文彻底搞懂Vue的MVVM响应式原理,vue则是采用发布者-订阅者模式,通过Object.defineProperty()来劫持各个属性的getter和setter,在数据变动时发布消息给订阅者,触发相应的监听回调
    2022-06-06
  • Vue+Spring Boot简单用户登录(附Demo)

    Vue+Spring Boot简单用户登录(附Demo)

    这篇文章主要介绍了Vue+Spring Boot简单用户登录,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-11-11
  • Vue3使用v-html实现文本关键词变色处理

    Vue3使用v-html实现文本关键词变色处理

    遍历文本内容,找到关键词,并使用某种方法更改其字体样式,经过搜寻资料决定采用v-html实现,但是v-html本身并不安全,有安全性风险且影响性能,所以谨慎使用,本文给大家介绍了Vue3使用v-html实现文本关键词变色处理,需要的朋友可以参考下
    2024-06-06
  • vue-router路由与页面间导航实例解析

    vue-router路由与页面间导航实例解析

    vue-router 是一个插件,需要在 Vue 的全局引用中通过 Vue.use()将它引用到 Vue 实例当中。接下来通过本文给大家分享vue-router路由与页面间导航,需要的朋友参考下吧
    2017-11-11

最新评论