我正在使用其他人启动的vue.js项目,我将它放在生产服务器上。 npm run build
编译没有错误。但是当我尝试在浏览器中运行项目时,我得到了一个
Uncaught SyntaxError: unexpected token <
这是index.html
<!DOCTYPE html><html><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><title>tst-apps-suite</title><base href=/ ><link href="https://fonts.googleapis.com/css?family=Open+Sans:300,400,700,800" rel=stylesheet><link href="https://fonts.googleapis.com/css?family=Dosis:200,400,600,700,800" rel=stylesheet><link href=https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css rel=stylesheet><link href=/static/css/app.d79e04c40fa9145fe427147ef17b4576.css rel=stylesheet></head><body><div id=app></div><script type=text/javascript src=/static/js/manifest.2ae2e69a05c33dfc65f8.js></script><script type=text/javascript src=/static/js/vendor.bfe581b46b720086662f.js></script><script type=text/javascript src=/static/js/app.19024fb1db555dd8417b.js></script></body></html>
我得到了所有3个.js
资产文件。
请求上的服务器控制台输出。看起来文件正在返回:
GET /static/css/app.d79e04c40fa9145fe427147ef17b4576.css 200 1.580 ms - 820
GET /static/js/manifest.2ae2e69a05c33dfc65f8.js 200 3.095 ms - 820
GET /static/js/app.19024fb1db555dd8417b.js 200 3.157 ms - 820
GET /static/js/vendor.bfe581b46b720086662f.js 200 3.429 ms - 820
知道如何解决这个问题吗?
答案 0 :(得分:3)
在不同的选项卡上打开每个脚本的URL(或检查开发人员工具的网络选项卡),这些URL可能返回404(或其他一些错误代码)和HTML错误页面。
因此,您的代码会尝试将这些HTML错误页面解析为JavaScript代码,从而产生该错误。
它获得Uncaught SyntaxError: Unexpected token <
因为它尝试将HTML内容(例如<html> ...
)解析为JavaScript代码。
运行下面的代码段并在控制台上查看错误。
<script type=text/javascript src=https://stackoverflow.com></script>
Check the console: "Uncaught SyntaxError: Unexpected token <"
&#13;
答案 1 :(得分:0)
在我的情况下,这是由于the public path in my vue config正在寻找“ / mywidget /”之类的静态路径,并正在“ /mywidget/dist/1234.js”中寻找资产,这是一个问题,因为在我的部署上下文中,内置的html没有“ mywidget”文件夹,无法在其中找到js文件。
就我而言,我再次将公共路径设置为“ /”,并且有效。