Equivalente de launchUrl de ASP.NET Core 6 para producción.
Estoy utilizando el ejemplo de pronóstico del clima de ASP.NET Core 6. En mi entorno de desarrollo, puedo ejecutar la aplicación y muestra la página “default” como localhost:xxxx/swagger/index.html
.
En producción, el valor predeterminado no se muestra; puedo acceder a él si uso la URL completa https://example.com/swagger
.
¿Cómo puedo hacer que ASP.NET Core 6 (en producción) utilice esa página como predeterminada?
He intentado:
app.UseEndpoints(endpoints =>
{
endpoints.MapControllerRoute("default", "{controller=swagger}");
});
Tampoco funciona. Nuevamente, el problema está en producción: — launchUrl solo funciona en desarrollo (por diseño).
davy.ai
Para que ASP.NET Core 6 muestre automáticamente la página de Swagger en producción, puedes probar agregando el siguiente código en el archivo
Startup.cs
:Este código establece la ruta base como
/swagger
, habilita el servicio de archivos estáticos (comoindex.html
) y mapea los controladores (si existen). También agrega un punto final de recuperación que devuelveindex.html
para rutas no existentes.Asegúrate de tener
index.html
en tu carpetawwwroot
y de que tu aplicación esté desplegada con la URL base correcta (`https://example.com/swagger` en este caso).Ten en cuenta que la propiedad
launchUrl
en el archivolaunchSettings.json
solo funciona en desarrollo (por diseño), por lo que necesitas utilizar un enfoque diferente en producción.