Rodar um mini servidor web a partir de uma pasta

Em diversos momentos surge a necessidade de testar um site ou página web que acabou de criar para ver se está 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
ou
python -m http.server 8000 --bind 127.0.0.1

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 class Program
    {
        public static void Main(string[] args)
        {
            var host = new WebHostBuilder()
            .UseKestrel()
            .UseContentRoot(Directory.GetCurrentDirectory())
            .UseStartup<Startup>()
            .Build();
            
            host.Run();
        }

        public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
            WebHost.CreateDefaultBuilder(args)
                .UseStartup<Startup>();
    }   

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 comandos:

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

Fonte: publicado originalmente em CodigoSimples.net

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google

Você está comentando utilizando sua conta Google. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s