在本地磁盘保存的站点中启用响应路由

时间:2017-02-10 14:35:14

标签: javascript reactjs react-router

我已使用浏览器进入我的网站,然后使用 CTRL + S 保存,在Google Chrome上选择网页完成选项。

然后,当我在浏览器中打开保存的html文件时,我的网站总是将我重定向到找不到页面。

似乎react-router无法处理来自本地磁盘的路由。

我的routes.js:

import * as React from 'react';
import { Route } from 'react-router';
import Layout from './containers/Layout';
import Home from './containers/Home';
import Registration from './containers/Registration';
import Cancellation from './containers/Cancellation';
import NotFound from './errorPages/NotFound';

export default <Route component={ Layout }>
    <Route path='/' components={{ body: Home }} />
    <Route path='/registration' components={{ body: Registration }} />
    <Route path='/cancellation' components={{ body: Cancellation }} />
    <Route path='*' components={{body: NotFound}}/>
</Route>;

// Enable Hot Module Replacement (HMR)
if (module.hot) {
    module.hot.accept();
}

我如何正确处理这种情况,更改路线配置,可能是保存网站的其他变种,我该怎么做才能保存我的网站,然后导航没有任何麻烦?

1 个答案:

答案 0 :(得分:0)

您需要运行并配置服务器以重新路由到index.html的所有请求,此时React Router负责所有路由。见这里:

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

该示例使用Express(Node.js)服务器,相关块位于:

app.get('*', function (request, response){ response.sendFile(path.resolve(__dirname, 'public', 'index.html')) })

虽然如果您使用其他服务器进行本地开发,您也可以配置您选择的其他服务器。