React路由器参数化路由:SyntaxError:预期表达式,得到'<'



我设置了一个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来解决这个问题。

相关内容

最新更新