Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

317
Views
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 answers
Answer question

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 Report

0

Necesitaba declarar UseDefaultFiles() antes de UseStaticFiles().

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

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!