Puncte:0

Setarea căii contextului în nginx

drapel cn

Î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.

drapel us
Ați putea încerca să vă clarificați întrebarea cu exemple clare: „Când solicit URL-ul A, vreau să obțin fișierul B de la sistemul de fișiere”. „Când solicit adresa URL C, vreau să obțin fișierul D de la sistemul de fișiere”. Este puțin dificil să vezi de ce ai nevoie din întrebarea ta. Vă rugăm să clarificați și ce înțelegeți prin calea contextului.
Sampreeth Amith Kumar avatar
drapel cn
Cale de context Mă refer la calea URL la care trebuie servită aplicația. În cazul meu, vreau ca aplicația să fie difuzată la /mfeexample și nu la nivel de rădăcină. Toate fișierele ar trebui să fie, de asemenea, servite din /mfeexample.
drapel us
Vă rugăm să adăugați exemple exacte așa cum am cerut mai sus.Fără exemple clare, la această întrebare nu se poate răspunde.
Sampreeth Amith Kumar avatar
drapel cn
Pentru a da un exemplu, atunci când lovesc adresa URL http://localhost:3000/, aplicația react nu ar trebui să fie redată, dar când lovesc adresa URL http://localhost:3000/mfeexample/, aplicația ar trebui să-și redea conținutul și, de asemenea, să servească toate fișierele statice de la http://localhost/mfeexample. Acum, dacă încerc ruta imbricată, adică http://localhost:3000/mfeexample/customer/, aceeași aplicație react ar trebui să servească toate fișierele statice de la http://localhost:3000/mfeexample/, dar ar trebui să redea conținutul în http:// localhost:3000/mfeexample/client/ Sper ca asta ajuta.
Sampreeth Amith Kumar avatar
drapel cn
Aplicația ar trebui să returneze main.js din aplicația React, care ar trebui să fie disponibilă la http://localhost:3000/mfeexample. Utilizatorul ar trebui să poată accesa fie http://localhost:3000/mfeexample, fie http://localhost:3000/mfeexample/customer, dar problema actuală este că atunci când accesează http://localhost:3000/mfeexample/customer serverul încearcă să servească main.js de la http://localhost:3000/mfeexample/customer în loc de calea de bază la http://localhost:3000/mfeexample
drapel us
Ne pare rău, dar exemplul dvs. încă nu arată ce cale de sistem de fișiere ar trebui să servească fiecare adresă URL. Vă rugăm să editați întrebarea și să adăugați acolo URL-ul - mapările căilor.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.