react-router深层链接

IT技术 reactjs react-router github-pages
2021-05-10 06:08:48

这是我第一次使用 React 和 React Router,我遇到了一些深层链接问题。我已经构建了一个简单的 SPA,在 React Router 的帮助下,我可以导航到 mysite.com/work、mysite.com/about 和 mysite.com/work/:projectid。如果我从站点的根目录(例如 mysite.com 并单击“工作”)开始,则导航到这些页面没有问题。我遇到的问题是深层链接(手动输入 mysite.com/about 或刷新 mysite.com/about 上的页面)。这一切都适用于我的本地主机,但不适用于托管站点(顺便说一句,托管在 GitHub 页面上)。

这是因为我使用 GitHub 页面来托管我的网站吗?或者这是 React Router 的问题?

这是 main.js 的一部分:

var routes = (
    <Router history={history}>
        <Route path="/" component={App}>
            <IndexRoute component={Work} />
            <Route path="/work" component={Work} />
            <Route path="/work/:id" component={ProjectDetail} />
            <Route path="/about" component={About} />
        </Route>
        <Route path="*" component={NotFound} />
    </Router>
);

ReactDOM.render(routes, document.getElementById('main'));
1个回答

您可以从根站点遍历站点,因为路由全部由react-router从根站点的 js 文件加载的处理

中没有 html 文件/about/index.htmlgh-pages托管静态站点,如果您在mysite.com/about没有 html 文件的情况下访问,它可能会给您一个 404。

如果您使用 webpack,请尝试使用https://github.com/markdalgleish/static-site-generator-webpack-plugin