vue中引用文件路径问题小结

 更新时间:2023年12月14日 15:35:59   作者:杨扬树  
vue路径分为绝对路径、相对路径、~+路径 及 别名+路径,在js中,引入带别名的文件路径,不需要在别名前加~ ,在css或者style中引入的需要在路径前面加~,路径以 ~ 开头,其后的部分将会被看作模块依赖,本文给大家介绍vue中引用文件路径问题,感兴趣的朋友一起看看吧

vue路径分为:

绝对路径、相对路径、~+路径 及 别名+路径

绝对路径:

(1)放在public文件夹下的内容,不会经过webpack打包处理,可以直接引用,

比如:aa.png直接放在public文件夹下,不管在哪个文件里,都可以这么引用

<img src="aa.png" style="width: 200px; height: 200px" />

(2)通过别名引用

在js中,引入带别名的文件路径,不需要在别名前加~ ,在css或者style中引入的需要在路径前面加~,路径以 ~ 开头,其后的部分将会被看作模块依赖。这意味着你可以用该特性来引用一个 Node 依赖中的资源,~相当于reqiure。

在vue.config.js中定义了别名
    chainWebpack: (config) => {
        config.resolve.alias
            .set('@', resolve('src'))  //本项目路径src路径设置别名为@
            .set('_conf', resolve('src/config')) //本项目路径src/config路径设置别名为_conf
            .set('_iconfont', resolve('src/assets/icons/iconfont'))
            .set('_css', resolve('src/assets/css/'))
            .set('_img', resolve('src/assets/img/'))
            .set('_js', resolve('src/assets/js/'))
            .set('_components', resolve('src/components'))
            .set('_header', 'src/Header')
            .set('_footer', 'src/Footer')
    }
在vue中引入js文件和css文件
注意在script中路径前面都没有~
<script>
import index from "_js/index.js";                 ==src/assets/js/index.js
import "swiper/swiper.min.css";                   ==node_modules/swiper/swiper.min.css
import "_js/vendor/swiper/swiper.min.css";  ==src/assets/js/vendor/swiper/swiper.min.css
</script>
注意style中使用别名的路径前面需要加~ 
<style scoped>
@import url(~_css/index.css);     ==src/assets/css/index.css
</style>

相对路径:

引入相对路径,路径前面需要加require

在src/view/home/index.vue中引入src/assets/img/icon-cloud-light.png 
正确写法:
<img  src="require(../../assets/img/icon-cloud-light.png)" />
错误写法:
<img src="../../assets/img/icon-cloud-light.png" />
原因:除了public文件夹下的内容,其余内容都会经过webpack处理,路径就变了,所以需要用require处理一下路径

~+路径 及 别名+路径

以下示例,通过别名引入文件

通过别名设置div的背景图片
用reqiure,这样写可以
<div    class="thumbnail"
        v-bind:style=
"{backgroundImage:'url(' +require('_img/index/service-special-zone-bg-01.png') +')',}"
   >
用~,这样写不行:
<div     class="thumbnail"
         v-bind:style=
"{backgroundImage:'url(~_img/index/service-special-zone-bg-01.png)',}"
>
给div设置style样式,设置背景图片等属性
<div
        class="featurette"
        :style="[
          {
            background:
              'url(' +
              require('_img/index/service-rate-bg.png') +
              ' )  bottom center no-repeat',
          },
          {
            'background-size': 'auto 100%',
          },
          {
            'margin-bottom': '50px',
          },
        ]"
      >
</div>
通过别名引入图片
<img src="~_img/index/icon-cloud-light.png" alt="" />
通过别名引入css
<style scoped>
 @import url("~_css/index.css"); 
</style>
通过别名引入js
<script>
import index from "_js/index.js";
import Swiper from "swiper";
import "swiper/swiper.min.css"; //后跟的是swiper.css的相对路
import "_js/vendor/swiper/swiper.min.css";
</script>

到此这篇关于vue中引用文件路径问题的文章就介绍到这了,更多相关vue引用文件路径内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 详解vue过滤器在v2.0版本用法

    详解vue过滤器在v2.0版本用法

    本篇文章主要介绍了vue过滤器在v2.0版本用法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-06-06
  • 一篇文章带你搞懂Vue虚拟Dom与diff算法

    一篇文章带你搞懂Vue虚拟Dom与diff算法

    这篇文章主要给大家介绍了关于Vue虚拟Dom与diff算法的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-08-08
  • vue.config.js常用配置详解

    vue.config.js常用配置详解

    这篇文章主要介绍了vue.config.js常用配置详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-11-11
  • 解决Vue3报错:Property “xxx“ was accessed during render but is not defined on instance.

    解决Vue3报错:Property “xxx“ was accessed during render but

    这篇文章主要给大家介绍了关于解决Vue3报错:Property “xxx“ was accessed during render but is not defined on instance.的相关资料,文中通过图文介绍的非常详细,需要的朋友可以参考下
    2023-01-01
  • VUE数组根据索引删除数据,页面同时更新的实现方法

    VUE数组根据索引删除数据,页面同时更新的实现方法

    这篇文章主要介绍了VUE数组根据索引删除数据,页面同时更新的实现方法,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-07-07
  • Vue3导出pdf文件详细方案

    Vue3导出pdf文件详细方案

    这篇文章主要给大家介绍了关于Vue3导出pdf文件的相关资料,最近项目有个需求,将系统统计的数据生成分析报告,然后可以导出成PDF,这里给大家总结下,需要的朋友可以参考下
    2023-08-08
  • Element-plus侧边栏踩坑的问题解决

    Element-plus侧边栏踩坑的问题解决

    本文主要介绍了Element-plus侧边栏踩坑的问题解决,主要解决了el-menu直接嵌套el-menu-item菜单,折叠时不会出现文字显示和小箭头无法隐藏的问题,具有一定的参考价值,感兴趣的可以了解一下
    2023-08-08
  • 超实用vue中组件间通信的6种方式(最新推荐)

    超实用vue中组件间通信的6种方式(最新推荐)

    组件是 vue.js最强大的功能之一,而组件实例的作用域是相互独立的,这就意味着不同组件之间的数据无法相互进行直接的引用,所以组件间的相互通信是非常重要的,这篇文章主要介绍了vue中组件间通信的6种方式,需要的朋友可以参考下
    2022-11-11
  • VUE3中h()函数和createVNode()函数的使用解读

    VUE3中h()函数和createVNode()函数的使用解读

    这篇文章主要介绍了VUE3中h()函数和createVNode()函数的使用解读,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-08-08
  • Vue实现动态显示表单项填写进度功能

    Vue实现动态显示表单项填写进度功能

    这篇文章主要介绍了Vue实现动态显示表单项填写进度功能,此功能可以帮助用户了解表单填写的进度和当前状态,提高用户体验,通常实现的方式是在表单中添加进度条,根据用户填写状态动态更新进度条,感兴趣的同学可以参考下文
    2023-05-05

最新评论