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 相关文章推荐
js对象的构造和继承实现代码
Dec 05 Javascript
js、css、img等浏览器缓存问题的2种解决方案
Oct 23 Javascript
个人总结的一些JavaScript技巧、实用函数、简洁方法、编程细节
Jun 10 Javascript
详细解读AngularJS中的表单验证编程
Jun 19 Javascript
JavaScript 不支持 indexof 该如何解决
Mar 30 Javascript
Vue.js 表单校验插件
Aug 14 Javascript
详解JavaScript中的属性和特性
Dec 08 Javascript
过期软件破解办法实例详解
Jan 04 Javascript
值得分享和收藏的xmlplus组件学习教程
May 05 Javascript
angular.js和vue.js中实现函数去抖示例(debounce)
Jan 18 Javascript
vue2.0实现前端星星评分功能组件实例代码
Feb 12 Javascript
详解Angularjs 自定义指令中的数据绑定
Jul 19 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 excel类 phpExcel使用方法介绍
2010/08/21 PHP
php弹出对话框实现重定向代码
2014/01/23 PHP
php5.4以上版本GBK编码下htmlspecialchars输出为空问题解决方法汇总
2015/04/03 PHP
Symfony2使用Doctrine进行数据库查询方法实例总结
2016/03/18 PHP
浅谈PHP拦截器之__set()与__get()的理解与使用方法
2016/10/18 PHP
js获取单元格自定义属性值的代码(IE/Firefox)
2010/04/05 Javascript
在IE和VB中支持png图片透明效果的实现方法(vb源码打包)
2011/04/01 Javascript
js将控件隐藏的方法及display属性介绍
2013/07/04 Javascript
使用insertAfter()方法在现有元素后添加一个新元素
2014/05/28 Javascript
TypeScript具有的几个不同特质
2015/04/07 Javascript
javascript基于DOM实现省市级联下拉框的方法
2015/05/14 Javascript
jQuery插件实现带圆点的焦点图片轮播切换
2016/01/18 Javascript
JavaScript模拟鼠标右键菜单效果
2020/12/08 Javascript
jQuery选择器及jquery案例详解(必看)
2016/05/20 Javascript
JavaScrpt中如何使用 cookie 设置查看与删除功能
2017/07/09 Javascript
javascript实现循环广告条效果
2017/12/12 Javascript
jquery 给动态生成的标签绑定事件的几种方法总结
2018/02/24 jQuery
发布Angular应用至生产环境的方法
2018/12/10 Javascript
在vue项目中使用sass语法问题
2019/07/18 Javascript
关于在LayUI中使用AJAX提交巨坑记录
2019/10/25 Javascript
Python中使用hashlib模块处理算法的教程
2015/04/28 Python
python 上下文管理器使用方法小结
2017/10/10 Python
python中不能连接超时的问题及解决方法
2018/06/10 Python
python 截取XML中bndbox的坐标中的图像,另存为jpg的实例
2020/03/10 Python
详解基于python的图像Gabor变换及特征提取
2020/10/26 Python
Vision Directa智利眼镜网:框架眼镜、隐形眼镜和名牌太阳眼镜
2016/11/23 全球购物
River Island美国官网:英国高街时尚品牌
2018/09/04 全球购物
岗位职责的含义
2013/11/17 职场文书
师德师风建设整改措施思想汇报
2014/10/11 职场文书
2014年秘书工作总结
2014/11/25 职场文书
财务人员岗位职责
2015/02/03 职场文书
2015年乡镇流动人口工作总结
2015/05/12 职场文书
2015年乡镇纪委工作总结
2015/05/26 职场文书
严以用权专题学习研讨会发言材料
2015/11/09 职场文书
2016公司中秋节寄语
2015/12/07 职场文书
django学习之ajax post传参的2种格式实例
2021/05/14 Python