ASP.NET
Core -
Servindo Arquivos estáticos
![]() |
Neste artigo veremos como servir arquivos estáticos em uma aplicação ASP .NET Core MVC. |
A ASP .NET Core trouxe muitos conceitos novos para o desenvolvimento de aplicações WEB na plataforma .NET.
Dentre eles temos:
Dentre essas novidades vamos abordar o tratamento dos arquivos estáticos em uma aplicação ASP .NET Core MVC.
Arquivos estáticos, como HTML, CSS, imagens e JavaScript, são ativos que um aplicativo ASP.NET Core fornece diretamente para os clientes. Algumas etapas de configuração são necessárias para habilitar o fornecimento desses arquivos.
Os arquivos estáticos são armazenados no diretório raiz do projeto que é a pasta /wwwroot, mas pode ser alterado por meio do método UseWebRoot.
Os arquivos estáticos são acessíveis por meio de um caminho relativo ao diretório base. Por exemplo, o modelo de projeto para uma aplicação Web Application (MVC) contém as seguintes pastas dentro da pasta wwwroot:
![]() |
|
Se estiver direcionando o projeto para o .NET Framework, adicione o pacote Microsoft.AspNetCore.StaticFiles ao projeto. Se você estiver direcionando para o .NET Core, o metapacote Microsoft.AspNetCore.App vai incluir esse pacote.
Para poder servir arquivos estáticos presentes na pasta wwwroot temos que configurar o middleware que permite o fornecimento de arquivos estáticos no método Configure da classe Startup invocando o método UseStaticFiles :
public void Configure(IApplicationBuilder app) { app.UseStaticFiles(); } |
Com isso poderemos acessar todos os arquivos estáticos presentes na pasta wwwroot.
Servindo arquivos fora da pasta base (wwwroot)
Vamos supor que eu tenha uma pasta chamada ArquivosEstaticos com uma subpasta Imagens que contém uma imagem chamada vs1.png, e, que esta pasta esta fora da pasta base wwwroot.
Como fazer para poder servir os arquivos estáticos existentes na pasta
ArquivosEstaticos ?
Podemos configurar o middleware StaticFiles no método Configure da classe Startup.
Abaixo temos um trecho de código que define esta configuração :
public void Configure(IApplicationBuilder app, IHostingEnvironment env) { ...
app.UseStaticFiles(); |
Neste código
accima a hierarquia de diretórios ArquivosEstaticos
é exposta publicamente por meio do segmento da URI
StaticFiles.
Uma requisição para
http://<server_address>/ArquivosEstaticos/Imagens/vs1.png atende ao
arquivo vs1.png
Assim podemos ver que app.UseStaticFiles() habilita a pasta padrão wwwroot.
O código :
app.UseStaticFiles(new
StaticFileOptions
{
FileProvider = new PhysicalFileProvider(
Path.Combine(Directory.GetCurrentDirectory(), "ArquivosEstaticos")),
RequestPath = "/ArquivosEstaticos"
});
Configura a pasta do Content ArquivosEstaticos para fornecer arquivos estáticos no caminho da requisição /ArquivosEstaticos.
Então, poderemos executar o pedido HTTP http://localhost:1234/ArquivosEstaticos/Imagens/vs1.png para exibir a imagem vs1.png.
Alterando o código do arquivo Index.cshtml da pasta /Views/Home temos:
Executando o projeto iremos obter o seguinte resultado:
Simples assim...
"Dando graças ao Pai
que nos fez idôneos para participar da herança dos santos na luz;
O qual nos tirou da potestade das trevas, e nos transportou para o reino do
Filho do seu amor;
Em quem temos a redenção pelo seu sangue, a saber, a remissão dos pecados;
O qual é imagem do Deus invisível, o primogênito de toda a criação;"
Colossenses 1:12-15
Veja os
Destaques e novidades do SUPER DVD Visual Basic (sempre atualizado) : clique
e confira !
Quer migrar para o VB .NET ?
Quer aprender C# ??
Quer aprender os conceitos da Programação Orientada a objetos ? Quer aprender o gerar relatórios com o ReportViewer no VS 2013 ? Quer aprender a criar aplicações Web Dinâmicas usando a ASP .NET MVC 5 ? |
Referências:
Super DVD Vídeo Aulas - Vídeo Aula sobre VB .NET, ASP .NET e C#
Super DVD C# - Recursos de aprendizagens e vídeo aulas para C#
ASP .NET Core 2 - MiniCurso Básico - Macoratti
ASP .NET Core MVC - CRUD básico com ADO .NET - Macoratti
ASP .NET Core - Implementando a segurança com ... - Macoratti
ASP .NET Core - Iniciando com ASP .NET Core MVC e ... - Macoratti
ASP .NET Core MVC - Criando um site com MySql e EF ... - Macoratti
ASP .NET Core - Gerenciador de Despesas Pessoais com ... - Macoratti
Minicurso ASP .NET Core 2.0 - Apresentando MVC - YouTube
ASP .NET Core - Configurando o ambiente de ... - Macoratti
ASP .NET Core e EF Core - Configurando o ambiente - Macoratti
ASP .NET Core - Como configurar o AutoMapper - Macoratti