Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

327
Visualizações
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.

over 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

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)

over 4 years ago · Santiago Trujillo Relatório

0

Necesitaba declarar UseDefaultFiles() antes de UseStaticFiles().

 app.UseDefaultFiles(); app.UseStaticFiles();
over 4 years ago · Santiago Trujillo Relatório

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

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda