2017-02-10 47 views
0

我使用瀏覽器進入了我的網站,然後使用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(); 
} 

我怎樣才能妥善處理在這樣的情況下,換條路線配置,節約網站也許其他的變種,我應該怎樣做,以節省我的網站,然後導航沒有任何麻煩?

+0

我沒有意識到,這不是我的意圖。我編輯時沒有看到任何標籤。抱歉。 –

回答

0

您需要運行並配置服務器,將所有請求重新路由到index.html,此時,React Router負責處理所有路由。在這裏看到:

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

的示例使用快車(Node.js的)服務器,相關的塊是在這裏:

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

雖然你也可以配置,如果您選擇的另一臺服務器你爲本地開發使用其他東西。

+0

這是關鍵點,要啓動沒有服務器的網站,只需在瀏覽器中打開mysite.html,它就可以工作。沒有反應路由器,它完美的工作。 –

+0

你能澄清你的觀點嗎?您*需要*在這裏運行服務器,以便按照您的預期運行反應路由器 – Conan

+0

我可以避免運行服務器嗎?這是主要的一點,沒有服務器的工作 –