【发布时间】:2018-02-20 03:55:32
【问题描述】:
我开发了一个简单的 MEAN 堆栈应用程序(使用 Angular 4 for UI)。 它在我的本地节点上运行良好,但是当我在 Ubuntu 上部署它时,它给出了
Uncaught SyntaxError: Unexpected token : in browser console
这是我的 app.js 内容
const app = express();
const users = require('./routes/users');
const client = require('./routes/client');
// Port Number
//const port = 3000;
// Port Number
const port = process.env.PORT || 3001;
// CORS Middleware
app.use(cors());
// Set Static Folder
app.use(express.static(path.join(__dirname, 'public')));
// Body Parser Middleware
app.use(bodyParser.json());
// Passport Middleware
app.use(passport.initialize());
app.use(passport.session());
require('./config/passport')(passport);
app.use('/users', users);
app.use('/client', client);
// Index Route
app.get('/', (req, res) => {
res.send('Invalid Endpoint');
});
app.get('*', (req, res) => {
res.sendFile(path.join(__dirname, 'public/index.html'));
});
// Start Server
app.listen(port, () => {
console.log('Server started on port '+port);
});
我的公共文件夹下的 index.html
<html lang="en">
<head>
<meta charset="utf-8">
<title>MEAN</title>
<base href=".">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="icon" type="image/x-icon" href="favicon.ico">
<!--Bootstrap and jQuery online links-->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<!-- For login Html -->
<link rel="stylesheet" href="assets/icons/simple-line-icons.css">
</head>
<body>
<app-root></app-root>
<script type="text/javascript" src="inline.bundle.js"></script><script type="text/javascript" src="polyfills.bundle.js"></script><script type="text/javascript" src="styles.bundle.js"></script><script type="text/javascript" src="vendor.bundle.js"></script><script type="text/javascript" src="main.bundle.js"></script></body>
</html>
【问题讨论】:
-
您是否尝试过清除所有缓存?您是否确保这些文件具有您的服务器可以访问的正确权限?
-
我只是在谈论您的本地浏览器缓存,如果您查看浏览器中的网络选项卡,您能看到请求在正确的位置发出正确的文件吗?
-
@OArnarsson - 是的,我试过了,但同样的问题,我可以看到脚本/js 文件正在加载(状态:200)。在控制台中我得到这个:inline.bundle.js:1 Uncaught SyntaxError: Unexpected token
-
这可能是因为你的角度找不到文件。您是在子文件夹中部署应用程序,还是在根位置?
-
@David - 我的 app.js 和 'public' 文件夹在同一级别,公共文件夹 index.html 和其他 js 文件在同一级别