Как обслуживать index.html для React и обрабатывать маршрутизацию по одним и тем же путям?
При использовании реагирования вам нужно обслуживать index.html с включенным в него response_app.js на любом маршруте, если пользователь еще не загрузил response_app.js (пришел впервые).
Затем вам нужно обслуживать некоторые вызовы API из response_app.js, но если вы используете тот же URL-адрес для GET, скажем, вы получите ответ на вызов API, а не index.html с response_app.js.
Какое решение для этого? Делать вызовы API только с некоторым префиксом и отправлять index.html только если маршрут не найден?
Мой код:
fastify.register(require('fastify-static'), {
root: path.join(__dirname, './static')
})
fastify.route({
method: 'GET',
url: '/',
handler: async (req, res) => {
res.send('you will get api call answer but you need to serve index.html with react_app.js first!!!!')
}
})
1 ответ
Как предположил @Garrert, вот как это будет работать:
// Статические файлы
fastify.register(require('fastify-static'), {
root: path.join(__dirname, './static')
})
// this will work with fastify-static and send ./static/index.html
fastify.setNotFoundHandler((req, res) => {
res.sendFile('index.html')
})
// Here go yours routes with prefix
fastify.register(async openRoutes => {
openRoutes.register(require('./server/api/open'))
}, { prefix: '/api' })