未捕获到的SyntaxError:JavaScript文件意外的令牌<

时间:2018-12-30 04:01:30

标签: node.js angular express mean-stack

我正在开发MEAN堆栈CRUD项目。建立项目后,我从dist/ngAppVideos/index.html文件夹中的index.html文件中收到此错误。我尝试了<base href="/">,但没有走运。 这是我的index.html文件

<!doctype html>

<html lang="en">

<head>

<meta charset="utf-8">

<title>NgAppVideos</title>

<base href="/ngAppVideos/">

<meta name="viewport" content="width=device-width, initial-scale=1">

<link rel="icon" type="image/x-icon" href="favicon.ico">

</head>

<body>

<app-root></app-root>

<script type="text/javascript" src="runtime.js"></script>

<script type="text/javascript" src="polyfills.js"></script>

<script type="text/javascript" src="styles.js"></script>

<script type="text/javascript" src="vendor.js"></script>

<script type="text/javascript" src="main.js"></script>

</body>

</html>

这是server.js文件

const express = require('express');
const bodyParser = require('body-parser');
const path = require('path');
const api = require('./server/routes/api');

const port = 3000;

const app = express();

api.use(express.static(path.join(__dirname, 'dist')));


app.use(bodyParser.urlencoded({ extended: true }));


app.use(bodyParser.json());

app.use('/api', api);


app.get('*', (req, res) => {
    res.sendFile(path.join(__dirname, 'dist/ngAppVideos/index.html'));
});

app.listen(port, function () {
    console.log("Server running on localhost:" + port);
}); 

我尝试了许多方法,例如修改index.html文件中的base-href位置,但是没有用

在server.js中,我将__dirname更改为dist/index.html,但这一次它只是提示No such directory can be found..错误。

谢谢!

1 个答案:

答案 0 :(得分:0)

您有一些错误:

1)要将公用文件设置为dist,必须设置dist的完整路径。可能在子目录中或类似的目录中。

2)在您的node.js代码中,告诉您通过HTML文件返回所有GET请求,而在前端代码中,您得到了一个javascript文件,但是您的服务器代码发送了HTML文件和前端等待javascript代码,但获取HTML文件并向您发送此错误。

要解决这些问题,必须设置一个正确的公用文件夹,并将您的javascript文件放入其中,然后更改“获取javascript路径”在前面,例如

像这样公开设置

app.use(express.static(path.join(__dirname, 'subdirectory/dist')))

并将脚本标记更改为:

<script type="text/javascript" src="/runtime.js"></script>

不要忘记将您的javascript文件放在dist文件夹中