我设置了一个使用参数化路由的 React-router:
<Route path="/comments" comments={comments.commentsArray} component={NewReactElement} />
<Route path="/comments/:id" component={Comment} />
错误:SyntaxError: expected expression, got '<'
我研究了这个错误,发现它是在服务器尝试获取 .js/.css/other 文件时发生的,但返回的 HTML 以 <!DOCTYPE>
开头。相反,所以我设置了 express.static
, 但在输入 URL 时,例如 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'));
});
我也试过:
app.use('/*/*', express.static(...));
但是也没用。
提前感谢您的建议。
最佳答案
我有一个 react/react-router 页面没有任何 express 并且得到了同样的错误:
SyntaxError: expected expression, got '<'
一旦我配置了一个 react 路由而不是 root /
,它就开始出现了.
经过一些试验,我发现在我的 index.html 中有一个指向 js 文件的链接:
<script src="bundle.js"></script>
</body>
</html>
因此,解决方案是添加 /
在源路径中:
<script src="/bundle.js"></script>
</body>
</html>
错误消失了。
希望对您有所帮助。
关于javascript - react 路由器参数化路由 : SyntaxError: expected expression, 得到 '<',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36345851/