Încerc să ofer aplicația și fișierele incluse în pachetul meu web dintr-o cale de context. Fișierul Nginx Config este după cum urmează:
nginx.conf
Server {
asculta 80;
root /usr/share/nginx/html;
index index.html index.htm;
Locație / {
try_files $uri $uri/ /mfeexample/index.html;
}
locație /mfeexample/ {
try_files $uri $uri/ /mfeexample/index.html;
}
}
Dockerfile
# Construiți mediu
FROM node:14.2.0-alpine ca build
# Director de lucru
WORKDIR /app
# Copierea fișierelor pachetului nodului în directorul de lucru
COPIEAZĂ pachet.* .
#Instalarea dependenței de aplicație
RUN npm install --silent
#Copiați tot codul
COPIE . .
#RUN Construcție de producție
RUN npm run build
# mediu de productie
DIN nginx:stabil-alpin
# Implementați aplicația construită pe serverul Nginx
# /usr/share/nginx/html este directorul static Nginx folosit pentru a servi aplicația
COPY --from=build /app/build /usr/share/nginx/html/mfeexample
# Eliminați configurația implicită Nginx din Nginx Container
RUN rm /etc/nginx/conf.d/default.conf
# Aplicați noul fișier de configurare
COPIEAZĂ nginx/nginx.conf /etc/nginx/conf.d/default.conf
# Expuneți aplicația pe PORT 80
EXPUNEREA 80
# Porniți serverul Nginx
CMD ["nginx", "-g", "daemon off;"]
Acum, uitându-mă la fila de rețea din browser, am găsit că toate fișierele sunt servite la http://localhost:3000/mfeexample/, asta este exact ceea ce îmi doream. Cu toate acestea, când încerc ruta imbricată se rupe, ruta imbricată mă refer la http://localhost:3000/mfeexample/customer/, uitându-mă din nou la fila de rețea, nginx caută fișiere sub http://localhost:3000/mfeexample/ customer/index.html, dar vreau ca nginx să găsească întotdeauna fișierele de la http://localhost:3000/mfeexample.
PS: Vă rugăm să rețineți că sunt nou în nginx și am făcut o metodă de încercare și eroare pentru a ajunge până la acest punct.
Mulțumesc anticipat.