Я создаю SPA с React и платформой Koa.
Я использовал React-Router для маршрутизации страниц подкачки, таких как:
<BrowserRouter>
<Route exact path="/" component={Main} />
<Route exact path="/channels" component={Channels} />
<Route exact path="/information" component={Information} />
<Route exact path="/upload" component={Upload} />
</BrowserRouter>
и использую Koa-Router для маршрутизации таких вещей, как API :
const useStatic = require('koa-static');
app.use(useStatic('../react/build'));
app.use(require('koa-mount')('/server-static', useStatic('./static')));
const Router = require('./route');
app.use(Router.routes());
app.use(Router.allowedMethods());
Я думаю, Router.routes()
вещи не важны, поэтому я просто оставлю это так. Он просто обрабатывает запросы API на /data/~~~
.
, поэтому страница, построенная в React, будет обслуживаться на /
, и если я переместлю страницу с элементом Link
, она будет работать нормально.
но если я переместлю страницу с вводом URL (например, domain.com/channels
) или просто нажму F5, чтобы обновить sh страницу, он просто выбрасывает страницу Koa 404. (отображается только текст «404»)
, и если я перехожу на страницу API с вводом URL (domain.com/data/getChannels?id=1
), React удерживает мой запрос API и просто показывает страницу React 404. (но на самом деле запрос API с топором ios работает нормально, не знаю, почему)
Почему возникает этот конфликт?
Редактировать: проблема, связанная с тем, что бросание 404 решается просто отправкой ответа 404 на страницу индекса React с koa-send
, но URL-адрес API по-прежнему показывает страницу React. Я думаю, что это проблема кеширования, но как я могу это исправить?