【问题标题】:Uncaught SyntaxError: Unexpected token < in react-router with trailing slash in the endUncaught SyntaxError: Unexpected token < in react-router 最后带有斜杠
【发布时间】:2026-02-17 16:20:14
【问题描述】:

我正在使用 react-router 创建一个新应用程序,但遇到了以下问题: 当我插入一个带有http://localhost:3000/app/ 的URL,在URL 的末尾带有斜杠时,它会返回消息Uncaught SyntaxError: Unexpected token &lt;,但是当我插入相同的URL 但最后没有斜杠http://localhost:3000/app 时,它可以工作!

如何保持在 URL 末尾不使用斜杠的模式,并将所有有这种类型的人重定向到没有这种类型的 URL?

【问题讨论】:

  • 不快乐不是吗!这个想法涉及到 react-router 中的斜杠行为。我已经用过 babel!

标签: javascript node.js reactjs url react-router


【解决方案1】:

为了解决这个问题可以在服务器端进行更改,在这种情况下,我使用 Node.js 和 Express.js 作为我的服务器,具有处理 URL 并将其重定向到已处理的 URL 的功能:

app.use(function(req, res, next) {
  if (req.path.length > 1 && /\/$/.test(req.path)) {
    var query = req.url.slice(req.path.length)
    res.redirect(301, req.path.slice(0, -1) + query)
  } else {
    next()
  }
});

此函数接收请求、响应和下一个匹配路由作为参数。如果字符串 URL 大于 1,并且此字符串 URL 的最后一个参数是 /,则它会在没有 / 的情况下将 301 重定向到此 URL,否则它会继续调用下一个匹配的路由。

【讨论】:

    最近更新 更多