vue-cli 编译出来的 index.html 属性没有引号

这是编译之后生成的 index.html :

<!DOCTYPE html>
<html>
<head>
    <meta charset=utf-8>
    <meta name=apple-mobile-web-app-capable content=yes>
    <meta name=viewport content="width=device-width,initial-scale=1,user-scalable=0">
    <title>湖滨四季春</title>
    <link href=/static/sjc_static/css/app.81169d7780dd356bb7d62ca3d2d52ebe.css rel=stylesheet>
</head>
<body>
<div id=app-box></div>
<script type=text/javascript
        src="http://webapi.amap.com/maps?v=1.4.0&key=dbed229e8af71f4b4dddb44956c84a02&plugin=AMap.Driving"></script>
<script type=text/javascript src=/static/sjc_static/js/manifest.3a9b2d23abd288730c76.js></script>
<script type=text/javascript src=/static/sjc_static/js/vendor.a0687872db1d30918b4e.js></script>
<script type=text/javascript src=/static/sjc_static/js/app.4ee8f571fc0aa6cfc5be.js></script>
</body>
</html>

标签的属性都没有引号,很讨厌,每次要自己加上,特别是 meta 的 charset 属性,不加引号的话浏览器显示中文会乱码,,,

我自己在看 webpack 配置文件,这个地方我看默认就是 false 了呀:

clipboard.png

有没有大哥指点一二,webpack 在哪里配置一下可以默认加上引号?

阅读 6.1k
2 个回答

直接把minify这个配置项删掉呢

关联的打包配置项就是这个,也可以试着去掉这个removeAttributeQuotes的键值对,因为默认就是false。

SGML里是推荐总是使用引号作为标签属性值的定界符,
但当属性值包含某些特殊字符时,可以省略引号,
于是开发了这么一个配置项,用于省略能够省略的标签属性值引号。

只不过容易导致误伤,
比如用于标定字符集的<meta charset="UTF-8" />标签,有些浏览器去掉引号后不能较好识别,
或者用于SEO标识搜索引擎爬虫是否允许检索的<meta name="robots" content="NOINDEX,NOFOLLOW" />标签等等,
就会被删掉导致爬虫判定失误,
所以请在确保掌握相关规律的情况下再开启吧。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题