Динамические сегменты реагируют на маршрутизатор

У меня есть конфигурация маршрута, которая выглядит следующим образом (показаны только те части, которые, я думаю, могут иметь значение):

var React = require('react');

var Router = require('react-router');
var { Route, DefaultRoute, NotFoundRoute } = Router;

var routes = (
    <Route handler={AppHandler}>
        <DefaultRoute handler={HomeHandler}/>
        <Route name='home' path='/home' handler={HomeHandler}/>
        <Route name='settings' path='/settings/?:tab?' handler={SettingsHandler}/>
        <NotFoundRoute handler={NotFoundHandler}/>
    </Route>
);

Router.run(routes, Router.HistoryLocation, function (Handler) {
    React.render(<Handler/>, document.getElementById('application'));
});

Теперь в моем файле «Настройки реагирования» у меня есть следующее:

var Settings = React.createClass({
    mixins: [Router.State],
  render: function() { ... }
});

Если я получу доступ кhost.local/settings и войтиthis.getParams() все работает нормально и файл показывает мнеObject {tab: undefined} в консоли. Но как только я попробуюhost.local/settings/user - где я ожидал, что консоль вернет что-то вродеObject {tab: 'user'} - все это где-то падает и просто начинает бросатьUncaught SyntaxError: Unexpected token < в консоли.

Реакт еще молод, и поэтому ошибки довольно расплывчаты во многих ситуациях.

Я следовал спецификациям, предоставленным наПутеводитель по путям и это кажется довольно стандартным, так что я могу только предположить, что это проблема самого реактивного маршрутизатора или я что-то упустил?

Обновить

tl; dr: Это не проблема с реагирующим маршрутизатором.

Длинная версия:

Судя по всему, проблема не в ReactJS и не в самих React-Router. В основном это ошибкаГлоток-веб-сервер (который я использую для разработки с использованием прокси-серверов для соединения отдельных проектов, работающих параллельно) и вызывает ошибку, когда URL-адреса вводятся непосредственно в браузере, а не через ссылку.

Я сделал тест, и он хорошо работает при навигации, но вылетает при прямом доступе, как описано наэтот вопрос GitHub, что в основном делает мои функциональные тесты DeepLinual нежизнеспособными, но должно работать во время работы.

Обновление 2

tl; dr: Это не проблема с gulp-webserver.

В моем случае это было связано сrelative а такжеabsolute пути ине проблема с gulp-webserver как уже упоминалось ранее. Чтобы быть более точным, я должен был убедиться, что ваш скрипт и ссылки CSS были абсолютными, чтобы он не пытался найти их по пути, который вы вводите в URL.

например.:

У вас есть два URL:/settings а также/settings/account, В этом случае, если у вас есть сценарий включения в резервный файл, что-то вроде<script src="scripts/main.js"></script>сервер вернет за него 404, поскольку в/settings/scripts/main.js.

Глупо с моей стороны, но в случае, если кто-то еще влюбится в это, я надеюсь, что это поможет.

Ответы на вопрос(1)

Ваш ответ на вопрос