在开发中,我们经常都是直接使用vue-cli脚手架来创建工程
然后都是直接打包。
但是有些场景我们需要修改html.index模板文件。有人会问什么情况下需要?
有些场景是我们在加载vue文件的时候会等待一段时间的,比如做了权限控制,先要获取权限,然后判断该页面是否有权限才进入该页面
这些都是说明我们会有一个页面等待的时间,如果这个时候页面是空白的,那么明显是不好的。
这个时候如果我们在index.html模板文件中再加一些html代码,如一个加载图片:
修改后的index.html如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<link rel="shortcut icon" href="./static/favicon.ico">
<link rel="icon" href="./static/favicon.ico">
<link rel="apple-touch-icon-precomposed" href="./static/favicon.ico">
<link rel="Bookmark" href="./static/favicon.ico">
<title>dolphin_template</title>
</head>
<body style="background: #f2f2f2;" class="dolphin">
<div id="app">
<img src="./static/loading.gif">
</div>
</body>
</html>
这个时候如果打包的话,打包结果img路径是不会变的,可以发现它是没有走babel-loader的
...
<img src="./static/loading.gif">
...
所以这个时候,img跟url是很挂钩的,这个时候有些url是找不到图片的。
这个时候我们需要修改一下,其实index.html是支持模板引擎的,
修改如下:
...
// 修改后
src="<%=require('./static/loading.gif')%>"
...
打包后:会被转义为base64,这样就跟路径没有关系了,
...
<img src="data:image/gif;base64,R0lGOD。。。此处省略,太长">
...
记一下,index.html是支持模板引擎的。以后碰到了应该避免这类问题。
如果对您有帮助,请点个赞。谢谢!