我设置了一个React路由器,它使用参数化路由:
<Route path="/comments" comments={comments.commentsArray} component={NewReactElement} />
<Route path="/comments/:id" component={Comment} />
错误:SyntaxError: expected expression, got '<'
我研究了这个错误,发现当服务器试图获取.js/.css/其他文件时,却返回了以<!DOCTYPE>
开头的HTML,所以我设置了express.static
,但当输入comments/1250
等URL时,它仍然返回:SyntaxError: expected expression, got '<'
。这是我的服务器设置:
app.use(express.static(__dirname + '/views/webpacked'));
app.listen(5000);
app.get('*', (req, res) => {
res.sendFile(path.resolve(__dirname, 'views', 'webpacked', 'index.html'));
});
我也试过:
app.use('/*/*', express.static(...));
但它也没有奏效。
谢谢你事先的建议。
我得到了一个没有任何明示的react/areact路由器页面,并得到了相同的错误:CCD_ 6,它在我配置了除了根CCD_。
经过一些实验,我发现在我的index.html中有一个指向js文件的链接:
<script src="bundle.js"></script>
</body>
</html>
因此,解决方案是在源路径中添加/
:
<script src="/bundle.js"></script>
</body>
</html>
错误已经过去了。
希望这能有所帮助。
在将/
添加到bundle.js
之后,因为这个答案表明问题仍然存在。
根据这个github问题,我可以通过在我的项目目录中运行rm -rf .cache
来解决这个问题。