报错截图
报错场景
- Vue项目的
public目录
下的index.html文件
引入某个.js脚本文件
(假设为xxx.js
)吧 - 写法:
<script src="./local/xxx.js"></script>
- 直接用相对路径引入,结果报错了
报错原因
- 报错:
Uncaught SyntaxError: Unexpected token '<' (at xxx.js)
- 原因一般就是资源引用错误,如下:
- 脚本或者静态资源引用错误,错误后无法加载解析。
- 或者是
<script>
或<link>
标签引入 - 引入的路径错了,找不到这个文件脚本资源之类的
- 笔者的项目中,配置了打包的基路径:
BASE_URL
比如:
// vue.config.js
module.exports = {
publicPath: process.env.BASE_URL,
lintOnSave: true,
......
}
// .env.development
NODE_ENV=development
BASE_URL=/
亦或路由:
// router.js
const router = new VueRouter({
mode: 'history',
base: process.env.BASE_URL,
routes
})
所以,入口index.html
就要换成基路径变量引入方式
代码示例
<!DOCTYPE html>
<html lang="zh-cmn-Hans">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width,initial-scale=1.0" />
<link rel="icon" href="<%= BASE_URL %>favicon.ico" />
<script src="<%= BASE_URL %>summernote/jquery-2.2.0.min.js"></script>
<!-- 正确引入方式 -->
<script src="<%= BASE_URL %>fold/xxx.js"></script>
<!-- 错误引入方式 -->
<script src="./fold/xxx.js"></script>
</head>
<body>
<div id="app"></div>
<!-- built files will be auto injected -->
</body>
</html>
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。