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 相关文章推荐
jQuery 入门讲解1
Apr 15 Javascript
window.requestAnimationFrame是什么意思,怎么用
Jan 13 Javascript
详解addEventListener的三个参数之useCapture
Mar 16 Javascript
全面了解addEventListener和on的区别
Jul 14 Javascript
BootStrap Datepicker 插件修改为默认中文的实现方法
Feb 10 Javascript
详解a++和++a的区别
Aug 30 Javascript
vue keep-alive请求数据的方法示例
May 16 Javascript
解决Mac安装thrift因bison报错的问题
May 17 Javascript
layui实现数据表格自定义数据项
Oct 26 Javascript
Angular进行简单单元测试的实现方法实例
Aug 16 Javascript
微信小程序连续签到7天积分获得功能的示例代码
Aug 20 Javascript
webpack介绍使用配置教程详解webpack介绍和使用
Jun 25 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中global和$GLOBALS[]的分析之一
2012/02/02 PHP
PHP CodeBase:将时间显示为&quot;刚刚&quot;&quot;n分钟/小时前&quot;的方法详解
2013/06/06 PHP
分享php分页的功能模块
2015/06/16 PHP
php通过前序遍历树实现无需递归的无限极分类
2015/07/10 PHP
flexigrid 参数说明
2010/11/23 Javascript
使用JavaScript构建JSON格式字符串实现步骤
2013/03/22 Javascript
node.js中的fs.futimesSync方法使用说明
2014/12/17 Javascript
jQuery检测鼠标左键和右键点击的方法
2015/03/17 Javascript
javascript正则表达式定义(语法)总结
2016/01/08 Javascript
javascript每日必学之条件分支
2016/02/17 Javascript
jQuery实现滚动鼠标放大缩小图片的方法(附demo源码下载)
2016/03/05 Javascript
当jquery ajax遇上401请求的解决方法
2016/05/19 Javascript
JavaScript登录记住密码操作(超简单代码)
2017/03/22 Javascript
Node.js中的不安全跳转如何防御详解
2018/10/21 Javascript
vue引入微信sdk 实现分享朋友圈获取地理位置功能
2019/07/04 Javascript
jQuery实现手风琴效果(蒙版)
2020/01/11 jQuery
JS script脚本中async和defer区别详解
2020/06/24 Javascript
vue 实现基础组件的自动化全局注册
2020/12/25 Vue.js
[36:33]完美世界DOTA2联赛PWL S2 LBZS vs Forest 第二场 11.29
2020/12/02 DOTA
Python实现根据指定端口探测服务器/模块部署的方法
2014/08/25 Python
Python中的字典与成员运算符初步探究
2015/10/13 Python
Python实现的NN神经网络算法完整示例
2018/06/19 Python
python基于C/S模式实现聊天室功能
2019/01/09 Python
手把手教你使用Python创建微信机器人
2019/04/29 Python
PyQt5实现简易电子词典
2019/06/25 Python
python制作朋友圈九宫格图片
2019/11/03 Python
关于numpy数组轴的使用详解
2019/12/05 Python
Python列表操作方法详解
2020/02/09 Python
Python class的继承方法代码实例
2020/02/14 Python
利用 Python ElementTree 生成 xml的实例
2020/03/06 Python
雪山饭庄的创业计划书范文
2014/01/18 职场文书
运动会广播稿50字
2014/01/26 职场文书
关于环保的标语
2014/06/13 职场文书
爱护公物标语
2014/06/24 职场文书
设计师求职信
2014/07/01 职场文书
学前教育专业求职信
2014/09/02 职场文书