当前位置: 首页 > 知识库问答 >
问题:

为什么在react history createHashHistory上为每个路径追加/#?

连晟
2023-03-14
import { createHashHistory } from 'history';
import { ConnectedRouter } from 'connected-react-router';

const history = createHashHistory({
  hashType: 'slash',
});
    ...
  <ConnectedRouter history={history}>
    <App />
  </ConnectedRouter>

我已经尝试更新我的软件包,就像这个问题说的,但它没有工作。

唯一有效的方法是将createHashHistory更改为createBrowserHistory,但我不知道它们之间有什么区别,也不知道为什么createHashHistory要追加/#

共有1个答案

林修真
2023-03-14

使用hashHistory,它生成url(如http://yourwebsite.net/#page/xxx)

对于browserHistory,它生成url(如http://yourwebsite.net/page/xxx)

用哪一个?在现实世界的产品中,主要使用browserHistory。经验法则是“如果您使用的是可以处理动态URL的动态服务器,那么您需要使用BrowserRouter组件,但是如果您使用的是只提供静态文件的服务器,那么在这种情况下应该使用HashRouter组件。”

 类似资料:
  • 我知道Java的自动类型转换可以用一种叫做“加宽路径”的东西来概括,它看起来像这样: 字节- 以下代码编译OK,并说明了一些char/int转换: 鉴于上面要求的转换,为什么char类型不在Java的加宽路径上?谢谢。

  • 在bash_profile中,java_home的设置如下所示 导出java_home=$(/usr/libexec/java_home) /usr/bin/java 命令java给出下面的路径 /usr/bin/java 命令“ls-la/usr/bin/java”提供以下链接 LRWXR-XR-X1根轮74 2019年1月15日/usr/bin/java->/system/library/fr

  • 问题内容: 我试图在我的MAC OS X 10.11(El Capitan)上运行JAVA应用程序。 我使用此链接在MAC OS X 10.11上设置了JAVA_HOME。 我能够运行以下命令: java -version which java 但是,当我转到MAC上的终端应用程序并键入echo $ JAVA_HOME时,什么也看不到。这是为什么?这是否意味着我的JAVA_HOME设置不正确? 问

  • 我有一个XML文件,如下所示 我的XSL看起来像这样 然后,我尝试达到节点内元素的每个值 它没有显示值!我认为这是一种正确的方式。首先,我有for each select=“//警报,然后我有<代码> 请帮忙。

  • 问题内容: 我检查了朋友一些代码,并发现谁建他的网站开发者开始每一个相对的,和以正斜杠。 例如: 我以前从未见过。所以我的问题是,为什么开发人员会在相对路径的开始处放置一个正斜杠? 问题答案: 这样做是为了扎根路径(使其成为绝对路径)。 它确保路径不是相对的,而是从站点的根目录读取的。 这样一来,人们就可以移动文件,而不必更改与其他资源的链接。 使用您的示例: 如果引用文件(例如)使用相对路径,则