react-router browserHistory 在 Apache 服务器上不起作用

Posted

技术标签:

【中文标题】react-router browserHistory 在 Apache 服务器上不起作用【英文标题】:react-router browserHistory doesn't work on Apache server 【发布时间】:2016-12-05 23:26:29 【问题描述】:

我有一个 html 单页应用程序,我正在尝试使用反应路由器的 browserHistory,但没有成功。在本地开发服务器上一切正常,在使用 hashHistory 时也在 prod 中运行。

到目前为止,我已经尝试过阅读的所有内容:

.htaccess 来自官方文档的更新(这似乎没有任何作用)。谁能确认这行得通? createBrowserHistory(有和没有 webpack 插件)

这是 Apache 服务器的已知限制吗?任何帮助将不胜感激。

【问题讨论】:

【参考方案1】:

我想我找到了解决方案。我更改了路径和链接以包含“./”。我必须为bundle.js 脚本做同样的事情。不确定这是否是 Apache 服务器独有的东西,但 browserHistory 现在对我来说很好。

您也无需添加任何 .htaccess 配置即可以这种方式工作。

我会注意到我的测试文件夹不在服务器的根文件夹中,也许这很重要。

路由器的工作示例代码

<Router history=browserHistory>
    <Route path="./" component=Intro/>
    <Route path="./news" component=News/>
    <Route path="./about" component=About/>
</Router>

和链接

<Link to="./">Intro</Link>
<Link to="./news">News</Link>
<Link to="./about">About</Link>

如果有人能解释为什么这可能是必要的或有不同的解决方法,将不胜感激。谢谢!

【讨论】:

我试过这样但它没有帮助我。为我解决的问题是将以下内容添加到 apache 指令中:Options +FollowSymLinks 谢谢,我可以试试。我发现如果文件位于根目录中,它可以正常工作(如路由器文档中的文档),所以我将它们保留在那里(现在不需要子文件夹)。当您使用 FollowSymLinks 时,您会保留带句点或不带句点的路径吗? 我使用带句点的路径。

以上是关于react-router browserHistory 在 Apache 服务器上不起作用的主要内容,如果未能解决你的问题,请参考以下文章

[react-router] React-Router怎么获取历史对象?

[react-router] React-Router怎么设置重定向?

[react-router] React-Router的实现原理是什么?

react-router v6对比react-router v5

[react-router] React-Router怎么获取URL的参数?

从 react-router 迁移到 react-router v6