Aplicația mea react funcționează dacă nginx reverse-proxy este setat după cum urmează:
Server {
asculta 80;
server_name my_public_vps_addr;
Locație / {
proxy_pass http://127.0.0.1:3000/;
}
}
Pot încărca pagina corect la http://my_public_vps_addr/.
Dar vreau să accesez site-ul prin http://my_public_vps_addr/ecapp/.
Deci am configurat nginx:
Server {
asculta 80;
server_name my_public_vps_addr;
locație /ecapp/ {
proxy_pass http://127.0.0.1:3000/;
}
}
Acum, dacă încarc pagina la http://my_public_vps_addr/ecapp/ și inspectez consola, primesc:
GET http://my_public_vps_addr/static/js/bundle.js
[HTTP/1.1 404 Nu a fost găsit 147 ms]
GET http://my_public_vps_addr/static/js/0.chunk.js
[HTTP/1.1 404 Nu a fost găsit 433ms]
GET http://my_public_vps_addr/static/js/main.chunk.js
[HTTP/1.1 404 Nu a fost găsit 424ms]
Am identificat o posibilă cauză. Activele ar trebui preluate de la http://my_public_vps_addr/ecapp/static/js/bundle.js
etc în loc de http://my_public_vps_addr/static/js/bundle.js
.
Pentru a remedia această eroare, voi enumera codul sursă relevant:
server.js
const express = require('express');
const compresie = require('compresie');
const cale = require('cale');
const app = expres();
app.use(compresie());
app.use(express.static(path.join(__dirname, 'build')));
app.get('*', function(req, res) {
res.sendFile(path.join(__dirname, 'build', 'index.html'));
});
const PORT = process.env.PORT || 3000;
app.listen(PORT, () => {
console.log(`Aplicația rulează pe portul ${PORT}`);
});
Am încercat app.use('/ecapp/static', express.static(path.join(__dirname, 'build')));
dar fara noroc.
Routes.js
const Rute = () => {
întoarcere (
<BrowserRouter>
<Comutator>
<Route path="/" exact component={Home} />
...
</Switch>
</BrowserRouter>
);
};
Am încercat <BrowserRouter basename='/ecapp'></BrowserRouter>
dar fara noroc.
Cred că aplicația se va încărca corect la http://my_public_vps_addr/ecapp/ dacă pot configura pagina pentru a căuta active la http://my_public_vps_addr/ecapp/static/*
. Am nevoie de ajutor pentru a face asta.