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 相关文章推荐
火狐浏览器(firefox)下获得Event对象以及keyCode
Nov 13 Javascript
CutePsWheel javascript libary 控制输入文本框为可使用滚轮控制的js库
Feb 07 Javascript
基于jQuery实现下拉收缩(展开与折叠)特效
Dec 25 Javascript
IE的fireEvent方法概述及应用
Feb 22 Javascript
使用Jquery实现点击文字后变成文本框且可修改
Sep 21 Javascript
jquery validate demo 基础
Oct 29 Javascript
JS数字千分位格式化实现方法总结
Dec 16 Javascript
使用p5.js临摹动态图形
Oct 23 Javascript
vue中动态select的使用方法示例
Oct 28 Javascript
通过vue刷新左侧菜单栏操作
Aug 06 Javascript
js仿京东放大镜效果
Aug 09 Javascript
原生JS实现音乐播放器的示例代码
Feb 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中路径问题的解决方案
2006/10/09 PHP
php网页后退不再出现过期
2007/03/08 PHP
php中XMLHttpRequest(Ajax)不能设置自定义的Referer的解决方法
2011/11/26 PHP
php将文件夹打包成zip文件的简单实现方法
2016/10/04 PHP
PHP微信PC二维码登陆的实现思路
2017/07/13 PHP
php封装的mongodb操作类代码
2017/08/06 PHP
php中如何执行linux命令详解
2018/11/06 PHP
基于jquery实现的上传图片及图片大小验证、图片预览效果代码
2011/04/12 Javascript
详解强大的jQuery选择器之基本选择器、层次选择器
2012/02/07 Javascript
jQuery下拉美化搜索表单效果代码分享
2015/08/25 Javascript
jquery实现简易的移动端验证表单
2015/11/08 Javascript
Vue.js每天必学之数据双向绑定
2016/09/05 Javascript
JS中用三种方式实现导航菜单中的二级下拉菜单
2016/10/31 Javascript
DOM 事件的深入浅出(二)
2016/12/05 Javascript
使用BootStrap实现悬浮窗口的效果
2016/12/13 Javascript
JS组件系列之MVVM组件 vue 30分钟搞定前端增删改查
2017/04/28 Javascript
使用svg实现动态时钟效果
2018/07/17 Javascript
微信小程序实现时间预约功能
2018/11/27 Javascript
[原创]微信小程序获取网络类型的方法示例
2019/03/01 Javascript
小程序实现左滑删除效果
2019/07/25 Javascript
微信小程序中网络请求缓存的解决方法
2019/12/29 Javascript
JavaScript 实现拖拽效果组件功能(兼容移动端)
2020/11/11 Javascript
[45:18]2018DOTA2亚洲邀请赛 4.3 突围赛 Optic vs iG 第一场
2018/04/04 DOTA
在Python下进行UDP网络编程的教程
2015/04/29 Python
Python设计模式之门面模式简单示例
2018/01/09 Python
Numpy数组转置的两种实现方法
2018/04/17 Python
numpy判断数值类型、过滤出数值型数据的方法
2018/06/09 Python
简单了解python高阶函数map/reduce
2019/06/28 Python
python使用opencv resize图像不进行插值的操作
2020/07/05 Python
PyCharm2020.3.2安装超详细教程
2021/02/08 Python
html5的自定义data-*属性与jquery的data()方法的使用
2014/07/02 HTML / CSS
基于MUI框架使用HTML5实现的二维码扫描功能
2018/03/01 HTML / CSS
美国休闲服装品牌:Express
2016/09/24 全球购物
高中生学习的自我评价
2013/12/14 职场文书
学习优秀共产党员先进事迹思想报告
2014/09/17 职场文书
2014年个人工作总结报告
2014/11/27 职场文书