Angular App中的语法错误:意外的标记<
我有一个在我的本地和生产环境中完美运行的Angular应用程序。在我做了一个小改动后,我在本地运行了该应用程序并且它工作正常。然后我构建了该项目并将dist文件夹复制到了Web服务器。 问题是当我尝试访问应用程序时,我在Chrome Inspector中收到以下错误:
Uncaught SyntaxError: Unexpected token < inline.1a152b6….bundle.js:1
Uncaught SyntaxError: Unexpected token < polyfills.1553fdd….bundle.js:1
Uncaught SyntaxError: Unexpected token < vendor.94d0113….bundle.js:1
Uncaught SyntaxError: Unexpected token < main.d6f56a1….bundle.js:1
所以,它似乎是一个错位的人物,但在我的本地环境中,应用程序工作正常,我没有在控制台上收到任何警告或错误信息。
这很可能是404页面或重定向到服务于常规html而不是预期JavaScript文件的页面的结果。 (HTML页面以<html>
或<!DOCTYPE...>
开头)确保您已正确上传文件并正确访问页面。 您可以通过使用浏览器手动访问URL来验证,或者查看浏览器开发工具的网络选项卡来检查响应。
这取决于您正在使用的服务器。 例如在Apache中,您可以将.htaccess文件设置为驱动器上的相对路径,您的应用程序位于RewriteBase
。 相应地设置<base href="">
。 使用节点, app.use(express.static(__dirname + '/dist'));
应该在app.get
之前...检查并确认构建没有错误,并且所有文件都被复制到dist。
我遇到过同样的问题:
昨天我注意到主服务器上没有[hash] .js文件,而且Filezilla没有给我一个复制它的错误。然后我试着只复制那个文件。它没有工作。 当我从文件名中删除散列部分时,它没有问题地复制。
工作一圆
运行: ng build --aot --prod --output-hashing none
每次都有效。
因此,Filezilla或Windows Server不允许具有特定长度的文件名,或者它不喜欢某些哈希值。
链接地址: http://www.djcxy.com/p/96843.html上一篇: Syntax Error in Angular App: Unexpected token <
下一篇: How to update javascript array if item exists in that index position?