[英]How do I force Angular2 to return JS instead of HTML?
我有一个名为Angular2应用程序的快速应用程序。 我一直收到错误消息:(SystemJS)意外的令牌<并进行了一些搜索,使我发现这通常是由于返回了错误的内容类型。
我发现app.module.js返回的是html而不是.js,这是在扔掉代码吗?
Error: (SystemJS) Unexpected token <
详细的错误是:
dashboard:21 Error: (SystemJS) Unexpected token <
SyntaxError: Unexpected token <
at eval (<anonymous>)
at Object.eval (http://localhost:3000/main.js:3:20)
at eval (http://localhost:3000/main.js:8:4)
at eval (http://localhost:3000/main.js:9:3)
Evaluating http://localhost:3000/app/app.module.js
Evaluating http://localhost:3000/main.js
Error loading http://localhost:3000/main.js
at eval (<anonymous>)
at Object.eval (http://localhost:3000/main.js:3:20)
at eval (http://localhost:3000/main.js:8:4)
at eval (http://localhost:3000/main.js:9:3)
Evaluating http://localhost:3000/app/app.module.js
Evaluating http://localhost:3000/main.js
Error loading http://localhost:3000/main.js
这是我的快递的样子:
app.use('/styles.css', express.static(path.join(__dirname, '../angular/src/styles.css')));
app.use('/systemjs.config.js', express.static(path.join(__dirname, '../angular/src/systemjs.config.js')));
app.use('/systemjs-angular-loader.js', express.static(path.join(__dirname, '../angular/src/systemjs-angular-loader.js')));
app.use('/systemjs.config.extras.js', express.static(path.join(__dirname, '../angular/src/systemjs.config.extras.js')));
app.use('/main.js.map', express.static(path.join(__dirname, '../angular/src/main.js.map')));
app.use('/main.js', express.static(path.join(__dirname, '../angular/src/main.js')));
app.use(express.static(path.join(__dirname, '../angular')));
app.use('/api/', auditlog);
app.get('*', (req, res) => {
res.sendFile(path.join(__dirname, '../angular/src/index.html'));
});
您的express应用程序已设置为可为任何请求提供index.html,因此通常会收到404时,您将获得该文件。鉴于该错误,我猜测您可能缺少JS文件,或者可能缺少一些SystemJS模块映射。 您可以使用网络检查器通过在请求的预览选项卡中查找来找到丢失的文件。
由于Angular具有路由功能,因此使用所有路由都很方便,但是在返回应用程序之前检查客户端是否正在请求text / html可能会有所帮助,否则返回404-这将使在客户端上识别丢失的JS文件更加容易侧。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.