Se añade nginx.conf personalizado y se expone swagger.
All checks were successful
Build and Deploy / remote-build-and-deploy (push) Successful in 24m18s
All checks were successful
Build and Deploy / remote-build-and-deploy (push) Successful in 24m18s
This commit is contained in:
@@ -194,16 +194,20 @@ builder.Services.AddSwaggerGen(options =>
|
|||||||
|
|
||||||
var app = builder.Build();
|
var app = builder.Build();
|
||||||
|
|
||||||
// --- Configuración del Pipeline HTTP ---
|
// Habilitamos Swagger SIEMPRE, sin importar el entorno.
|
||||||
|
app.UseSwagger(); // Habilita el middleware para servir el JSON de Swagger
|
||||||
|
app.UseSwaggerUI(options => // Habilita el middleware para servir la UI de Swagger
|
||||||
|
{
|
||||||
|
options.SwaggerEndpoint("/swagger/v1/swagger.json", "GestionIntegral API v1");
|
||||||
|
// Opcional: Para que Swagger aparezca en la raíz de la API (ej: http://192.168.4.128:8081/)
|
||||||
|
options.RoutePrefix = string.Empty;
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
// Mantenemos esta lógica solo para la página de error de desarrollo, si quieres.
|
||||||
if (app.Environment.IsDevelopment())
|
if (app.Environment.IsDevelopment())
|
||||||
{
|
{
|
||||||
app.UseSwagger(); // Habilita el middleware para servir el JSON de Swagger
|
// Aquí puedes dejar otras herramientas solo para desarrollo si las tuvieras.
|
||||||
app.UseSwaggerUI(options => // Habilita el middleware para servir la UI de Swagger
|
|
||||||
{
|
|
||||||
options.SwaggerEndpoint("/swagger/v1/swagger.json", "GestionIntegral API v1");
|
|
||||||
// options.RoutePrefix = string.Empty; // Para servir la UI de Swagger en la raíz (ej: http://localhost:5183/)
|
|
||||||
// Comenta esto si prefieres /swagger (ej: http://localhost:5183/swagger/)
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// ¡¡¡NO USAR UseHttpsRedirection si la API corre en HTTP!!!
|
// ¡¡¡NO USAR UseHttpsRedirection si la API corre en HTTP!!!
|
||||||
|
|||||||
@@ -16,6 +16,9 @@ RUN npm run build
|
|||||||
# --- Etapa 2: Serve ---
|
# --- Etapa 2: Serve ---
|
||||||
# Usamos una imagen de Nginx súper ligera para servir los archivos estáticos.
|
# Usamos una imagen de Nginx súper ligera para servir los archivos estáticos.
|
||||||
FROM nginx:stable-alpine
|
FROM nginx:stable-alpine
|
||||||
|
# Copiamos nuestro archivo de configuración personalizado a la carpeta de configuración de Nginx.
|
||||||
|
# Esto sobreescribirá la configuración por defecto.
|
||||||
|
COPY Frontend/nginx.conf /etc/nginx/conf.d/default.conf
|
||||||
WORKDIR /usr/share/nginx/html
|
WORKDIR /usr/share/nginx/html
|
||||||
|
|
||||||
# Eliminamos el index.html por defecto de Nginx.
|
# Eliminamos el index.html por defecto de Nginx.
|
||||||
|
|||||||
19
Frontend/nginx.conf
Normal file
19
Frontend/nginx.conf
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
# Este bloque de configuración se aplicará al servidor web.
|
||||||
|
server {
|
||||||
|
# Nginx escuchará en el puerto 80 dentro del contenedor.
|
||||||
|
listen 80;
|
||||||
|
|
||||||
|
# La raíz de los documentos, donde están nuestros archivos de React.
|
||||||
|
root /usr/share/nginx/html;
|
||||||
|
|
||||||
|
# Sirve el index.html por defecto para la ruta raíz.
|
||||||
|
index index.html;
|
||||||
|
|
||||||
|
# Esta es la regla mágica para las SPAs.
|
||||||
|
location / {
|
||||||
|
# Intenta servir el archivo exacto que se pide (ej: /assets/logo.png).
|
||||||
|
# Si no lo encuentra, intenta servir una carpeta con ese nombre.
|
||||||
|
# Si tampoco la encuentra, como último recurso (fallback), sirve /index.html.
|
||||||
|
try_files $uri $uri/ /index.html;
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user