Я настраиваю свой проект MERN на моем производственном сервере, и, убедившись, что вы можете вручную ввести URL-адрес (например, myproject.com/dashboard
), я добавил следующую строку в раздел server
моего файла конфигурации Nginx try_files $uri /index.html;
чтобы разрешить это (как указано в тренинге реакции-маршрутизатора страница ).Это теперь вызвало следующий ответ при попытке войти в систему Cannot POST /index.html
.
Если я удаляю строку, все вызовы API работают (я могу войти снова), но я не могу ввести URL вручную.
Я пытался переместить строку try_files
в начало раздела server
, если раздел сервера чувствителен к этому.
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name myproject.com;
root /home/forge/myproject.com/client/build;
...
location / {
try_files $uri /index.html;
proxy_pass http://127.0.0.1:8080;
}
...
}
const express = require('express');
const app = express();
app.use( express.static( `${__dirname}/client/build` ) );
app.use('/api/users', usersRouter);
app.use('/api/playlists', playlistRouter);
app.get('*', (req, res) => {
res.sendFile(`${__dirname}/client/build/index.html`);
});
Я ожидаю, что смогу войти (сделатьзвонки на мой API) и введите URL-адреса для моего проекта.