Реагировать на связанную страницу 404 после ее обновления в проекте ASP.NET MVC - PullRequest
1 голос
/ 27 июня 2019

Я пытаюсь выяснить, почему на странице ниже выдается ошибка 404 после ее обновления вручную (F5).Сначала он загружается правильно, но если я только обновляю эту страницу, он идет 404. Его основной зависимый компонент "Встреча" не имеет такой проблемы.Освежает все хорошо.Просто для того, чтобы вы знали, что приложение React создано внутри проекта .NET MVC и только часть представлений обрабатывается React.Есть идеи, что я должен делать неправильно?

#App.tsx

  import React from 'react'
  import { render } from 'react-dom'
  import { BrowserRouter } from 'react-router-dom'
  import { createBrowserHistory } from "history";
  import MeetingsRoutes from './MeetingsRoutes'

  function renderApp() {
      const history = createBrowserHistory();
      render(
        <BrowserRouter>
            <MeetingsRoutes/>
        </BrowserRouter>
        , document.getElementById('root')
      )
  }

  renderApp();
#MeetingsRoutes.tsx

import * as React from 'react'
import { Route, Switch } from 'react-router-dom'
import Meeting from './meeting/Meeting'
import { Fragment } from 'react';

export interface MeetingsRoutesState {
    history: any;
}

export default class MeetingsRoutes extends React.Component<{}, MeetingsRoutesState> {
    constructor(props: any) {
        super(props);
    }

    public render() {
        return (
            <Fragment>
                <Switch>
                    <Route exact path='/:baseUrl/Meeting' component={Meeting} />
                    <Route path='/:baseUrl/Meeting/:name/:country' component={MeetingDetails} />
                 </Switch>
            </Fragment>
        )
    }
}

1 Ответ

0 голосов
/ 27 июня 2019

Это происходит, если вы используете SSR.Страница, которую вы просматриваете в браузере по определенному маршруту, отображается с помощью активного маршрутизатора.

Например: домашняя страница на /home.

Здесь, когда браузер открывает маршрут /, активируется реагирующий маршрутизатор, а затем работает навигация по другому маршруту.Чтобы решить эту проблему, вы должны настроить свой сервер так, чтобы он перенаправлял все URL-адреса на index.html / route, который затем активирует реагирующий маршрутизатор и затем направляет на ваш конкретный путь /home.См. Диаграмму ниже для большего понимания.

SPA routing

В Node js мы делаем что-то подобное https://stackoverflow.com/questions/26349497/node-express-with-static-html-how-to-route-all-requests-to-index-html.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...