Rodar um mini servidor web a partir de uma pasta

0

Em diversos momentos surge a necessidade de testar um site ou página web que acabou de criar para ver se esta tudo funcionando redondo, se a chamada para API está ok ou apenas para apreciar momentaneamente as diversas horas de trabalho que foram aplicadas. Vamos ver as três formas que mais gosto:

Usando Node.JS

Considerando que instalou o Node.Js e o gerenciador de pacote npm, execute o comando abaixo para instalar o módulo http-server, responsável por subir nosso servidor web:

npm install -g http-server

O parâmetro -g instala o pacote globalmente no pc, pode trabalhar de forma local no projeto com package.json. Para prosseguir, direcione o terminal para a pasta do seu pojeto e execute o comando abaixo para subir seu servidor web:

http-server

Algo semelhante a isto irá aparecer:

Servidor web pronto!

Por padrão é usada a porta 8080, mas pode alterar usando o prâmetro -p, veja:

http-server -p 8282

Simples né? Basta acessar o endereço informado no terminal e usar.

Usando Python (versão 3)

Aqui começamos com o python (versão 3.7) e gerenciador de pacotes pip: Recomendo trabalhar com ambientes viruais no python, não vu entrar em detalhes pois não é o popósito deste post, veja como fazer aqui.

Primeiro instale o pacote chamado simple-http-server:

pip install simple-http-server

Agora suba o servidor na pasta do projeto(site):

python -m http.server 8080

Altere a porta se desejar, o parâmetro -m procura o nome módulo no sys.path e executa o mesmo, veja detalhes.

Usando DotnetCore (versão 2.1)

E quanto ao nosso querido .Net? Vou mostrar o exemplo raíz e outra forma mais simples criada através de uma ferramenta um integrante do ASP.Net Core Team.

Usando apenas o dotnet 2.1

Por padrão o projeto MVC em .Net não vai servir arquivos estáticos, então vamos precisar do dotnet 2.1(no meu caso) e o package Microsoft.AspNetCore.StaticFiles, siga os passos:

dotnet new mvc
dotnet add package Microsoft.AspNetCore.StaticFiles -v 2.1.*

  • Linha 1: criamos o projeto base MVC, arquivos e pastas padrão são criados como: appSettings.json, Program.cs, Startups.cs, pastas Models, Controllers e Views.
  • Linha 2: precisamos desse pacote para servir os arquivos estáticos, atente para a versão 2.1 neste caso, ao executar o comando sem informar a versão ele instalou a 2.2 o que acabou gerando erro porque meu dotnet é 2.1.

Certifique-se que a linha abaixo existe no seu Startup.cs, dentro do método Configure:

app.UseStaticFiles();

Agora altere seu Program.cs para ficar assim:

public static void Main(string[] args)
{
var host = new WebHostBuilder()
.UseKestrel()
.UseContentRoot(Directory.GetCurrentDirectory())
.UseStartup()
.Build();
host.Run();
}

Explicando: a linha do UseContentRoot faz a mágica.

Para finalizar coloque seu site estático dentro da pasta wwwroot, sim uma pasta wwwroot tem que ter sido gerada ao instalar nosso pacote StaticsFiles. No meu caso ficou assim:

Agora execute o comando abaixo na raíz (fora do wwwroot) :

dotnet run

e acesse o endereço http://127.0.0.1:5000/index.html

Usando a tool dotnet-serve (veja aqui)

Agora a forma ultra-rápida, vou usar a pasta wwwroot do tópico anterior como exemplo, basta executar 2 comando:

dotnet tool install –global dotnet-serve
dotnet serve -o -S

O primeiro instala a ferramenta que facilita todo o processo e a segunda instância o server. Mais fácil que isso fica complicado né?! ^^

Subir um servidor web no dias atuais para uso pessoal e temporário é uma tarefa bem simples e pode ser feita de diversas formas, não perca muito tempo, deixe o tempo que sobrar para publicar sua aplicação em um servidor de produção profissional que por si só exige atenção e uma boa dose de trabalho em alguns casos.

Até a próxima

Compartilhe.

Sobre o autor

Programador, apaixonado por games, empreendedor. Formado em Ciência da Computação com especialização em desenvolvimento para web, trabalhei com projetos .Net C#, NodeJs e Python nestes 10 anos de experiência no setor privado, em orgão públicos e na minha startup, o EstoqueMestre. http://rodrigoreisf.com.br