webpack+vue中使用别名路径引用静态图片地址


Posted in Javascript onNovember 20, 2017

webpack 的别名好处大家也都了解, 但是 vue 的模板中, 对图片地址使用别名时总出现问题, 很久时间的时间都没找到解决办法, 一度认为是 webpack 的原因...

alias: {
 'src': path.resolve(__dirname, '../src'),
 'assets': path.resolve(__dirname, '../src/assets'),
 'components': path.resolve(__dirname, '../src/components')
}
<template>
 <img src="assets/images/logo.jpg" />
</template>
<script>
import 'assets/css/style.css'
</script>
<style>
.logo {
 background: url(asset/images/bg.jpg)
}
</style>

上面的代码, 你会发现只有引入style.css是成功的, 图片地址和背景图片地址都会解析失败...

经过各种搜索找原因(这时候, 你会发现百度搜索这些技术型的内容, 真是垃圾中的战斗机), 最终还是找到原因了...

vue-html-loader and css-loader translates non-root URLs to relative paths. In order to treat it like a module path, prefix it with ~

就是要在别名前面加一个~

最终代码写成:

alias: {
 'src': path.resolve(__dirname, '../src'),
 'assets': path.resolve(__dirname, '../src/assets'),
 'components': path.resolve(__dirname, '../src/components')
}
<template>
 <img src="~assets/images/logo.jpg" />
</template>
<script>
import 'assets/css/style.css'
</script>
<style>
.logo {
 background: url(~asset/images/bg.jpg)
}
</style>

意思就是: 告诉加载器它是一个模块,而不是相对路径

注意: 只有在template中的静态文件地址和style中的静态文件地址需要加~, 在script里的, 别名定义成什么就写什么.
到此, 纠结了几个月时间的问题, 终于解决了...

顺便贴下自己使用的别名列表:

alias: {
  'assets': path.resolve(__dirname, '../src/assets'),
  'src': path.resolve(__dirname, '../src'),
  '~api': path.resolve(__dirname, '../src/api'),
  '~components': path.resolve(__dirname, '../src/components'),
  '~pages': path.resolve(__dirname, '../src/pages'),
  '~router': path.resolve(__dirname, '../src/router'),
  '~store': path.resolve(__dirname, '../src/store'),
  '~utils': path.resolve(__dirname, '../src/utils')
}

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

Javascript 相关文章推荐
关于onScroll事件在IE6下每次滚动触发三次bug说明
Sep 21 Javascript
js实现图片旋转的三种方法
Apr 10 Javascript
JavaScript中this详解
Sep 01 Javascript
jQuery实现分隔条左右拖动功能
Nov 21 Javascript
jQuery中的ready函数与window.onload谁先执行
Jun 21 Javascript
bootstrap flask登录页面编写实例
Nov 01 Javascript
jQuery源码分析之init的详细介绍
Feb 13 Javascript
Angular 2父子组件数据传递之@Input和@Output详解(下)
Jul 05 Javascript
Angularjs上传文件组件flowjs功能
Aug 07 Javascript
详解如何解决vue开发请求数据跨域的问题(基于浏览器的配置解决)
Nov 12 Javascript
使用jQuery实现掷骰子游戏
Oct 24 jQuery
Vue 中使用lodash对事件进行防抖和节流操作
Jul 26 Javascript
laydate日历控件使用方法详解
Nov 20 #Javascript
JavaScript框架Angular和React深度对比
Nov 20 #Javascript
如何选择适合你的JavaScript框架
Nov 20 #Javascript
JavaScript内存泄漏的处理方式
Nov 20 #Javascript
加载 vue 远程代码的组件实例详解
Nov 20 #Javascript
jquery中有哪些api jQuery主要API
Nov 20 #jQuery
详解如何将 Vue-cli 改造成支持多页面的 history 模式
Nov 20 #Javascript
You might like
php循环语句 for()与foreach()用法区别介绍
2012/09/05 PHP
PHP包含文件函数include、include_once、require、require_once区别总结
2014/04/05 PHP
如何使用Gitblog和Markdown建自己的博客
2015/07/31 PHP
PHP快速推送微信模板消息
2017/04/14 PHP
PHP单元测试配置与使用方法详解
2019/12/27 PHP
超级酷和最实用的jQuery实例收集(20个)
2010/04/21 Javascript
不同的jQuery API来处理不同的浏览器事件
2012/12/09 Javascript
window.navigate 与 window.location.href 的使用区别介绍
2013/09/21 Javascript
JS控制日期显示的小例子
2013/11/23 Javascript
angular2使用简单介绍
2016/03/01 Javascript
jQuery 出现Cannot read property ‘msie’ of undefined错误的解决方法
2016/11/23 Javascript
Javascript for in的缺陷总结
2017/02/03 Javascript
JS去掉字符串前后空格或去掉所有空格的用法
2017/03/25 Javascript
Vue 菜单栏点击切换单个class(高亮)的方法
2018/08/22 Javascript
vue中在vuex的actions中请求数据实例
2019/11/08 Javascript
[01:01:25]DOTA2上海特级锦标赛B组资格赛#2 Fnatic VS Spirit第三局
2016/02/27 DOTA
[00:50]深扒TI7聊天轮盘语音出处6
2017/05/11 DOTA
[01:09]DOTAPLUS——DOTA2的新时代
2018/04/04 DOTA
Python编程之基于概率论的分类方法:朴素贝叶斯
2017/11/11 Python
对变量赋值的理解--Pyton中让两个值互换的实现方法
2017/11/29 Python
浅谈python3.6的tkinter运行问题
2019/02/22 Python
python3转换code128条形码的方法
2019/04/17 Python
python-地图可视化组件folium的操作
2020/12/14 Python
纯CSS3实现自定义Tooltip边框涂鸦风格的教程
2014/11/05 HTML / CSS
Css3新特性应用之形状总结
2016/12/08 HTML / CSS
网游商务专员求职信
2013/10/15 职场文书
网站设计师的岗位职责
2013/11/21 职场文书
行政办公室岗位职责
2014/03/18 职场文书
《画杨桃》教学反思
2014/04/13 职场文书
社区学习雷锋活动总结
2014/04/25 职场文书
电子商务专业应届生求职信
2014/05/28 职场文书
校庆活动策划方案
2014/06/05 职场文书
培训科主任岗位职责
2014/08/08 职场文书
酒店前台接待岗位职责
2015/04/02 职场文书
你为什么是穷人?可能是这5个缺点造成
2019/07/11 职场文书
话题作文之自信作文
2019/11/15 职场文书