Javascript 使用/yourRoute not/#/aRoute对路由器路由作出反应

Javascript 使用/yourRoute not/#/aRoute对路由器路由作出反应,javascript,reactjs,react-router,url-routing,Javascript,Reactjs,React Router,Url Routing,我是一个新手,不知道我是否能在我的项目中得到一些基本的东西的帮助。我有路由器在运行,除了当我去我的路线/about(我唯一的路线)时,我得到了“无法获得/关于”,但当我去/#/about时,它成功地进入了路线。使用Link也可以,但是使用/#/about路由。总之,我的项目如下所示: render(( <Router history={hashHistory}> <Route path="/" component={Layout}> <Rou

我是一个新手,不知道我是否能在我的项目中得到一些基本的东西的帮助。我有路由器在运行,除了当我去我的路线
/about
(我唯一的路线)时,我得到了“无法获得/关于”,但当我去
/#/about
时,它成功地进入了路线。使用Link也可以,但是使用
/#/about
路由。总之,我的项目如下所示:

render((
  <Router history={hashHistory}>
    <Route path="/" component={Layout}>
      <Route path="/about" component={About}/>
    </Route>
  </Router>
  ),
渲染((
),
document.getElementById('app'))

导出默认类布局扩展React.Component{
render(){
返回(
切换导航
反应路由器测试
  • 关于
{this.props.children}

将粘性页脚内容放在此处

); } }
关于组件

const styles = {}
styles.body = {
  margin: 70,
}
export default React.createClass({
  render() {
    return <div style={styles.body}>About</div>
  }
})
constyles={}
style.body={
差额:70,
}
导出默认的React.createClass({
render(){
返回
}
})

请让我知道如何让应用程序识别
/about
,而不仅仅是
/#/about
,具体取决于您的
react router
版本,如何准确访问和更改可能有所不同,但要点应该相同

您当前正在使用哈希历史记录。这意味着您的url将使用哈希生成。另一个选项是使用浏览器历史记录。这将启用干净的URL
www.example.com/about

import { browserHistory } from 'react-router'
render((
  <Router history={browserHistory }>
    <Route path="/" component={Layout}>
      <Route path="/about" component={About}/>
    </Route>
  </Router>
  ),
从'react router'导入{browserHistory}
渲染((
),


注:如果上述操作不起作用,请查阅react router的文档和您正在使用的版本。他们在本部门进行了一些API更改和软件包更改(软件包有效地支持了此行为).

hmm不起作用。我需要npm安装历史记录并将其链接到某个地方吗?取决于您的react router版本,是的,您应该这样做。这是v1.x的链接。hmmm,我使用browserHistory获得了它,而链接没有使用#,但由于某种原因,在尝试引用url中的路由时,我仍然会收到get错误……您是否配置了您的服务器返回该url上带有react应用程序的页面?否则它将不知道如何实际返回基本html页面和react路由器将无法初始化。
import { browserHistory } from 'react-router'
render((
  <Router history={browserHistory }>
    <Route path="/" component={Layout}>
      <Route path="/about" component={About}/>
    </Route>
  </Router>
  ),