2017-02-10 8 views
0

я поступила на мой сайт с браузера, затем сохранить его CTRL +S, выбирая Веб-страница Полный вариант на Google Chrome.Включить маршрутизацию реагировать на локальном диске сохраненным сайта

Затем, когда я открываю сохраненный файл html в браузере, мой сайт всегда перенаправляет меня, чтобы не найти страницу.

Похоже, что ретранслятор не может обрабатывать маршруты с локального диска.

Мои 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

В этом примере используется сервер Express (Node.js), то уместен блок здесь:

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

Хотя вы также можете настроить другой сервер по вашему выбору, если вы используете что-то еще для своего местного развития.

+0

Это ключевой момент, чтобы запустить сайт без сервера, только открыть 'mysite.html' в браузере и он работает. Без реактивного маршрутизатора он работает отлично. –

+0

Можете ли вы уточнить свою точку зрения? вам нужно * запустить сервер здесь, чтобы реагировать на работу маршрутизатора, как вы ожидаете. – Conan

+0

Мог ли я избежать запуска сервера? Это главное, работая без сервера –