当前位置: 首页 > 面试题库 >

如何从React-Router中的URL中删除哈希

鲍永春
2023-03-14
问题内容

我正在使用react-
router进行路由,并使用hashHistory选项,以便可以从浏览器刷新页面或指定现有路由之一的url并到达正确的页面。它工作正常,但我在URL中看到的哈希是这样的:
http:// localhost /#/ login?_k = ya6z6i

这是我的路由配置:

ReactDOM.render((
 <Router history={hashHistory}>
    <Route path='/' component={MasterPage}>
      <IndexRoute component={LoginPage} />
      <Route path='/search' component={SearchPage} />
      <Route path='/login' component={LoginPage} />
      <Route path='/payment' component={PaymentPage} />
    </Route>
  </Router>),
    document.getElementById('app-container'));

问题答案:

您是否尝试过browserHistory选项?您还可以从浏览器刷新页面,或指定现有路线之一的网址并登陆到正确的页面。

import { Router, Route, browserHistory } from 'react-router';

ReactDOM.render((
 <Router history={browserHistory}>
    <Route path='/' component={MasterPage}>
      <IndexRoute component={LoginPage} />
      <Route path='/search' component={SearchPage} />
      <Route path='/login' component={LoginPage} />
      <Route path='/payment' component={PaymentPage} />
    </Route>
  </Router>),
    document.getElementById('app-container'));

此外,考虑到react-router github文档,hashHistory不适用于生产。

https://github.com/ReactTraining/react-
router/blob/master/docs/guides/Histories.md#browserhistory

我应该使用hashHistory吗?

哈希历史记录无需配置服务器即可工作,因此,如果您刚刚入门,请继续使用它。但是,我们不建议在生产环境中使用它,每个Webhtml" target="_blank">应用程序都应渴望使用浏览器。



 类似资料:
  • 我使用react-router进行路由,并使用hashHistory选项,这样我就可以从浏览器刷新页面,或者指定现有路由的url,然后登陆到正确的页面。它工作得很好,但我在url中看到的哈希如下所示:http://localhost/#/login?_k=ya6z6i 这是我的路由配置:

  • 问题内容: 如何从静态页面的网址中删除? 另外,我需要将任何网址重定向到没有该网址的网址。(即到)。 问题答案: 感谢您的答复。我已经解决了我的问题。假设我的页面在下,则适用以下.htaccess 规则。

  • 问题内容: 我正在使用angular-ui-router库,URL出现问题。 我有以下代码: app.js: index.html: 这行得通,但是当我从标记中删除“#”时,此行不通。 如何从网址中删除“#”符号? 问题答案: 如果要导航而不使用哈希标签,则需要启用HTML5Mode: 您还需要通过将以下代码添加到HTML文件的来告诉angular应用的根URL : 请注意,对HTML5模式的支持

  • 问题内容: 我正在尝试使用locationProvider从angular js的url路由中删除主题标签,但它给了我错误。 app.js 错误: 我想念什么吗? 编辑:用这样的选项对象调用html5Mode函数 我收到以下错误(更改为角度满角以更好地解释错误,而不是缩小版本) http://errors.angularjs.org/1.3.13/$location/nobase 问题答案: 您可

  • 问题内容: 我使用node.js和socket.io。 我的应用程序在端口3000上运行。该应用程序从以下网址启动: **mydomain.com :3000/ ** 我想从 **mydomain.com** 运行该应用程序-我想从url中删除端口。 在哪里以及如何设置此设置? 问题答案: 查找您的呼叫并将端口从更改为。不要忘记,您必须运行具有该功能的程序(有关详细信息,请参阅),以便绑定到Lin

  • 很长一段时间都在坚持这一点。我发现了类似的问题,但没有一个答案对我有用。根文件夹中的htaccess如下所示: