Идея состоит в том, чтобы создать множество отдельных реагирующих приложений на одном сервере express, поэтому каждое из них должно отображаться с использованием URL-адреса, например, mysite.com/app1
, mysite.com/app2
et c
мой express код:
const path = require('path');
const app = express();
app.use('/',express.static(path.join(__dirname, './public'))); // just a simple html, not a react
app.use('/app1',express.static(path.join(__dirname, './public/build-1'))); // react
app.use('/app2',express.static(path.join(__dirname, './public/build-2'))); // react
app.get('/', (req, res) => {
res.sendFile(path.join(__dirname, 'public', 'index.html'));
});
app.get('/app1/*', (req, res) => {
res.sendFile(path.join(__dirname, 'public/build-1', 'index.html'));
});
app.get('/app2/*', (req, res) => {
res.sendFile(path.join(__dirname, 'public/build-2', 'index.html'));
});
const PORT = process.env.PORT || 3000;
app.listen(PORT, () => {
console.log(`Server is running on port ${PORT}`)
});
так, на самом деле это работает
, но есть проблема - при посещении root URL сайта - mysite.com
- я получаю обычный index.html
файл, не реагирующий, , как и ожидалось , но с использованием пути - mysite.com/app1
или mysite.com/app2
- URL меняется только на mysite.com
и app1 или app2 запускается с root сайта, не оставаясь на маршруте mysite.com/app1
или mysite.com/app2
и да, я настроил пакет реагирования. json файл для обоих приложений
{"homepage": "http://localhost:3000/app1"}
и
{"homepage": "http://localhost:3000/app2"}