Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

318
Vistas
Configuración de index.html como página predeterminada en asp.net core

¿Cómo puedo obtener el núcleo de asp.net para servir un archivo index.html desde dentro de mi wwwroot?

La razón por la que quiero hacer esto es porque estoy desarrollando una aplicación angular 4 usando la CLI angular y se encarga de todo el proceso de compilación. Lo configuré para integrarlo en el directorio wwwroot de mi proyecto central de asp.net, pero el núcleo de asp.net no quiere servirlo.

Al principio traté de devolver el archivo html a través de un controlador. Probé esta ruta:

 app.UseMvc(routes => { routes.MapRoute( name: "default", template: "{controller=Home}/{action=Index}"); });

Y luego en el controlador devuelvo el archivo html así:

 public IActionResult Index() { var webRoot = _env.WebRootPath; var path = System.IO.Path.Combine(webRoot, "index.html"); return File(path, "text/html"); }

Esto no funcionó. Devolvió una excepción 404 no encontrada y dio la ruta, pero la ruta que proporcionó fue la ruta correcta al archivo index.html (lo corté y pegué en el explorador y se abrió el archivo).

También estoy declarando estos en el inicio:

 app.UseStaticFiles(); app.UseDefaultFiles();

Luego intenté eliminar la ruta predeterminada. Ahora puedo acceder al archivo index.html, pero solo si escribo el nombre del archivo, es decir:

localhost:58420/index.html

Si trato de acceder a la raíz del dominio sin especificar "index.html", obtengo un error 404.

¿Cuál es la forma correcta de hacer referencia a index.html como la página predeterminada? Supongo que hacerlo desde un controlador probablemente sea mejor porque entonces será compatible con el enrutamiento angular sin reescrituras.

about 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Solo usa esto en startup.cs :

 app.UseFileServer();

Es la abreviatura de:

 app.UseDefaultFiles(); app.UseStaticFiles();

evita problemas con tener que tenerlos en el orden correcto (como se muestra arriba)

about 4 years ago · Santiago Trujillo Denunciar

0

Necesitaba declarar UseDefaultFiles() antes de UseStaticFiles().

 app.UseDefaultFiles(); app.UseStaticFiles();
about 4 years ago · Santiago Trujillo Denunciar

0

Actualización de febrero de 2022

Para servir archivos estáticos (como index.html), los archivos deben estar en la carpeta wwwroot en su proyecto. Use UseWebRoot si desea cambiarlo a una carpeta diferente.

 public void Configure(IApplicationBuilder app, IWebHostEnvironment env) { app.UseFileServer(); }

Este método también acepta una instancia de FileServerOptions para un control aún más preciso, como habilitar la exploración de directorios , que está deshabilitada de manera predeterminada.

Referencia: https://docs.microsoft.com/en-us/aspnet/core/fundamentals/static-files

Respuesta original (enero '18)

Instale el paquete NuGet Microsoft.AspNetCore.StaticFiles .

Ahora, en el método Startup.Configure , agregue:

 public void Configure(IApplicationBuilder app, IHostingEnvironment env) { // Serve the files Default.htm, default.html, Index.htm, Index.html // by default (in that order), ie, without having to explicitly qualify the URL. // For example, if your endpoint is http://localhost:3012/ and wwwroot directory // has Index.html, then Index.html will be served when someone hits // http://localhost:3012/ // // (Function 1) app.UseDefaultFiles(); // Enable static files to be served. This would allow html, images, etc. in wwwroot // directory to be served. // // (Function 2) app.UseStaticFiles(); }

Nota: El orden en que se llaman estas funciones es importante. En la programación OO, es bastante difícil no depender del orden ya que los objetos mantienen estados que pueden variar durante la vida útil del objeto. (Lo adivinó bien, una solución para evitar diseños como este es implementar la inmutabilidad).

Ahora debería recibir archivos del directorio wwwroot (utilice UseWebRoot si desea cambiarlo a otra cosa).

Fuente: https://docs.microsoft.com/en-us/aspnet/core/fundamentals/static-files

about 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda