我创建了一个带有React的小应用程序并设置了一些简单的路由。它在我的本地主机上的客户端上正常工作。所有JS代码捆绑在一个文件中,并通过index.html文件访问。当我部署到服务器时,对路由的请求不起作用,因为一切都是客户端。React SSR:错误未捕获SyntaxError:意外的令牌<
为了解决这个问题,我试着查看几个使用ExpressJS服务索引文件的教程,这样我就可以在任何路径上加载客户端应用程序。问题是,当我服务的索引文件,它给了我的HTML文件,我得到这个错误:app.js:1 Uncaught SyntaxError: Unexpected token <
,我不知道为什么会发生这种情况,我怎么能解决这个问题。每当我删除脚本标记时,只需一些HTML文件即可正确传输。我不知道该怎么做,因为我发现其他来源也不是很有帮助。我需要做些什么来解决这个问题?
这里是我的服务器上的文件:
const express = require('express')
const path = require('path')
const port = process.env.PORT || 3000
const app = express()
app.use(express.static(__dirname + '/dist'))
app.get('*', function (request, response){
response.sendFile(path.resolve(__dirname, '../dist', 'index.html'))
})
app.listen(port)
,这里是我的索引文件通过快递送达:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
<title>app</title>
<!-- build:css css/app.min.css -->
<link rel="stylesheet" href="css/main.css">
<!-- endbuild -->
</head>
<body>
<div id="app"></div>
<!-- build:js js/app.min.js -->
<script src="js/app.js"></script>
<!-- endbuild -->
</body>
</html>
谢谢!