我有一个使用参数化路由的React-router设置:
<Route path="/comments" comments={comments.commentsArray} component={NewReactElement} />
<Route path="/comments/:id" component={Comment} />
错误:SyntaxError: expected expression, got '<'
我已经研究过这个错误,发现当服务器试图获取.js / .css / other文件时会发生这种情况,但是以<!DOCTYPE>
开头的HTML返回,所以我设置了{ {1}},但在输入express.static
等网址时,仍然会返回:comments/1250
。这是我的服务器设置:
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'));
});
但它也不起作用。
提前感谢您的建议。
答案 0 :(得分:9)
我有一个反应/反应路由器页面没有任何表达并得到相同的错误:
SyntaxError: expected expression, got '<'
一旦我配置了反应路由,然后只是根/
,它就开始出现了。
经过一些实验后,我发现在我的index.html中有一个指向js文件的链接:
<script src="bundle.js"></script>
</body>
</html>
因此,解决方案是在源路径中添加/
:
<script src="/bundle.js"></script>
</body>
</html>
并且错误消失了。
希望能有所帮助。
答案 1 :(得分:0)
将 /
添加到 bundle.js
作为 this answer suggested 后,问题仍然存在。
根据此 github issue,我能够通过在我的项目目录中运行 rm -rf .cache
来解决该问题。