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 相关文章推荐
Javascript string 扩展库代码
Apr 09 Javascript
固定背景实现的背景滚动特效示例分享
May 19 Javascript
Jquery 点击按钮自动高亮实现原理及代码
Apr 25 Javascript
用Jquery.load载入页面后样式没了页面混乱的解决方法
Oct 20 Javascript
jQuery插件StickUp实现网页导航置顶
Apr 12 Javascript
Node.js插件安装图文教程
May 06 Javascript
BootStrap的Datepicker控件使用心得分享
May 25 Javascript
JS中去掉array中重复元素的方法
May 26 Javascript
layui框架中layer父子页面交互的方法分析
Nov 15 Javascript
基于vue实现移动端圆形旋钮插件效果
Nov 28 Javascript
mpvue+vant app搭建微信小程序的方法步骤
Feb 11 Javascript
原生js实现购物车功能
Sep 23 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
德生PL450的电路分析和低放电路的改进办法
2021/03/02 无线电
基于session_unset与session_destroy的区别详解
2013/06/03 PHP
三个思路解决laravel上传文件报错:413 Request Entity Too Large问题
2017/11/13 PHP
Laravel 中使用简单的方法跟踪用户是否在线(推荐)
2019/10/30 PHP
setAttribute 与 class冲突解决
2008/02/17 Javascript
jQuery 表单验证扩展代码(二)
2010/10/20 Javascript
基于jquery的cookie的用法
2011/01/10 Javascript
javascript里模拟sleep(两种实现方式)
2013/01/25 Javascript
js 对小数加法精度处理示例说明
2013/12/27 Javascript
动态显示可输入的字数提示还可以输入的字数
2014/04/01 Javascript
JavaScript使用Max函数返回两个数字中较大数的方法
2015/04/06 Javascript
Bootstrap简单表单显示学习笔记
2016/11/15 Javascript
jQuery仿IOS弹出框插件
2017/02/18 Javascript
关于vuex的学习实践笔记
2017/04/05 Javascript
浅析JS中常用类型转换及运算符表达式
2017/07/23 Javascript
webpack 1.x升级过程中的踩坑总结大全
2017/08/09 Javascript
详解react、redux、react-redux之间的关系
2018/04/11 Javascript
JS实现可切换图片的幻灯切换效果示例
2019/05/24 Javascript
vue移动端使用canvas签名的实现
2020/01/15 Javascript
微信小程序报错: thirdScriptError的错误问题
2020/06/19 Javascript
原生JavaScript实现随机点名表
2021/01/14 Javascript
[01:19:33]DOTA2-DPC中国联赛 正赛 iG vs VG BO3 第一场 2月2日
2021/03/11 DOTA
Python中3种内建数据结构:列表、元组和字典
2014/11/30 Python
解决Python内层for循环如何break出外层的循环的问题
2019/06/24 Python
python爬虫 基于requests模块的get请求实现详解
2019/08/20 Python
从训练好的tensorflow模型中打印训练变量实例
2020/01/20 Python
Django查询优化及ajax编码格式原理解析
2020/03/25 Python
python判断正负数方式
2020/06/03 Python
SmartBuyGlasses中国:唯视良品(销售名牌太阳镜、墨镜和眼镜框)
2017/07/03 全球购物
时尚休闲吧创业计划书
2014/01/25 职场文书
婚礼答谢宴主持词
2014/03/14 职场文书
保护环境演讲稿
2014/05/10 职场文书
青年文明号申报材料
2014/12/23 职场文书
2015年个人实习工作总结
2015/05/28 职场文书
七年级语文教学反思
2016/03/03 职场文书
goland 设置project gopath的操作
2021/05/06 Golang