【问题标题】:How do I fix the React Router 'unexpected token <' error?如何修复 React Router 'unexpected token <' 错误?
【发布时间】:2017-08-01 05:26:27
【问题描述】:

我的 react.js / node.js 应用程序有问题。我在我的应用程序中使用了 React-routers,并且犯了非常严重的错误。

Index route works, everything is fine.

Routes like "/something" also work

但是像“/something/something”这样的路由不起作用:

(下一张图片是对此问题的评论)

[当我第一次加载此页面时][3]

[当我重新加载页面时][4]

我的代码: index.html

<!DOCTYPE html>
 <html>

  <head>
   <meta charset="utf-8">
   <title>Boox</title>
   <meta name="theme-color" content="teal">
   <meta name="viewport" content="width=device-width, initial-scale=1.0" />
   <link rel="stylesheet" href="http://fonts.googleapis.com/icon?family=Material+Icons" />
   <link type="text/css" rel="stylesheet" href="./plugins/css/normalize.css" />
   <link type="text/css" rel="stylesheet" href="./plugins/css/animate.css" />
   <link type="text/css" rel="stylesheet" media="screen, projection" href="./plugins/materialize/css/materialize.min.css" />
</head>

<body>
  <div id="root">

  </div>
  <script src="./plugins/js/jquery.js"></script>
  <script src='./plugins/materialize/js/materialize.min.js'></script>
  <script src="./dist/bundle.js"></script>
</body>

index.js:

import React, {Component} from 'react';
import ReactDOM from 'react-dom';
import {Router, Route, Link, browserHistory, IndexRoute} from 'react-router'

import App from './App.js';
import Main from './components/Main.js';
import NotFound from './components/NotFound.js';

import Users from './components/user/Users.js';
import Profile from './components/user/Profile.js';
// components
import Signup from './components/user/auth/Signup.js';
import Signin from './components/user/auth/Signin.js';

import Editor from './components/user/write/Editor.js';
import Write from './components/user/write/Write.js';

// styles
require('./less/common.less');



ReactDOM.render((
  <Router history={browserHistory}>
    <Route path="/" component={App}>
      <IndexRoute component={Main} />
      <Route path="signup" component={Signup} />
      <Route path="signin" component={Signin} />
      <Route path="write" component={Write}>
        <Route path=":id" component={Editor} /> // This doesnot work :(
      </Route>
      <Route path="users" component={Users}>
        <Route path=":id" component={Profile} /> // This doesnt work :(
      </Route>
    </Route>
    <Route path=":id" component={NotFound} />
  </Router>
), document.getElementById('root'))

Users.js:

import React, {Component} from 'react';
import {Router, Route, Link, browserHistory, IndexRoute} from 'react-router'

export default class Users extends Component {

  constructor() {
    super()
    this.state = {

    }
  }
  render() {
    return (
      <div>
        <h1>TEST USERS ROUTE</h1>
        {this.props.children}
      </div>
    )
  }
}

Server.js 也包含这个:

app.get('*', (req, res) => {
  res.sendFile(path.resolve(__dirname, 'index.html'));
})

我很乐意接受任何建议。谢谢。

【问题讨论】:

标签: node.js reactjs react-router react-jsx


【解决方案1】:

您看到的问题与尝试加载诸如 js 脚本或 css 脚本之类的资源有关,而您的快速服务器不处理该路由。这意味着它返回 html 文件。和 javascript 啊,我不知道 &lt; 是什么。如果你注意到 &lt; 是 html 文件中的第一个字符。

要给出完整的答案,我需要查看您的服务器文件是什么,以查看缺少哪个路由。但我的猜测是这些都是罪魁祸首

<link type="text/css" rel="stylesheet" href="./plugins/css/normalize.css" />
<link type="text/css" rel="stylesheet" href="./plugins/css/animate.css" />
<link type="text/css" rel="stylesheet" media="screen, projection" href="./plugins/materialize/css/materialize.min.css" />
<script src="./plugins/js/jquery.js"></script>
<script src='./plugins/materialize/js/materialize.min.js'></script>
<script src="./dist/bundle.js"></script>

基本上,您拥有的任何具有本地路径的导入。您需要确保在接受它的服务器上有一条路由。

【讨论】:

  • i.stack.imgur.com/wIRlv.png 我的 server.js 图像。你能说吗?
  • 你为什么要给我图片?你没有听到我在回答中所说的话吗?你必须接受你在服务器上请求的那些路由
  • 好像没听懂你的意思,不好意思。您说“要给出完整的答案,我需要查看您的服务器文件”。好的,我需要解决路由./plugins/css/normalize.css 等。
  • 问题已解决。我所有的链接都是相对的,例如,./plugins/css/normalize.css。我已经删除了点/plugins/css/normalize.css,一切正常!
【解决方案2】:

问题解决了。 我所有的链接都是相对的./plugins/css/normalize.css,当我尝试加载localhost/write/123时,它们(链接)正在尝试加载localhost/write/plugins/css/normalize.css

我已经删除了/plugins/css/normalize.css 的点,问题解决了! 感谢您的建议。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-01-13
    • 2021-03-22
    • 1970-01-01
    • 2016-09-01
    • 1970-01-01
    • 2017-12-29
    • 1970-01-01
    • 2020-02-09
    相关资源
    最近更新 更多