Se você está trabalhando em um pequeno projeto de front-end e deseja testá-lo localmente, normalmente você o abre apontando seu diretório local no navegador da web, por exemplo, digitando arquivo: /// home / erick / mysuperproject / index .html na sua barra de URL. No entanto, se seu site está tentando carregar recursos, mesmo que eles estejam localizados em seu diretório local, você poderá ver avisos como este:
XMLHttpRequest não pode carregar file: ///home/erick/mysuperproject/mylibrary.js. As solicitações de origem cruzada são compatíveis apenas com HTTP.
O Chrome e outros navegadores modernos implementaram restrições de segurança para solicitações de origem cruzada, o que significa que você não pode carregar nada por meio de file: ///, você precisa usar o protocolo http: // em todos os momentos, até mesmo políticas de mesma origem localmente devidas. Simples assim, você precisa montar um servidor web para executar seu projeto lá.
Este não é o fim do mundo e existem muitas soluções por aí, incluindo o bom e velho Apache (com VirtualHosts se você estiver executando vários outros projetos), node.js com express, um servidor Ruby, etc. ou simplesmente modificando seu configurações do navegador.
No entanto, existe uma solução mais simples e leve para os preguiçosos. Você pode usar o SimpleHTTPServer do Python. Ele já vem com o python, então você não precisa instalar ou configurar nada!
Então faça cd para o diretório do seu projeto, por exemplo
1 cd / home / erick / mysuperproject e então simplesmente use
1 python -m SimpleHTTPServer E é isso, você verá esta mensagem em seu terminal
1 Servindo HTTP na porta 0.0.0.0 8000 ... Agora você pode voltar ao seu navegador e visitar http://0.0.0.0:8000todos os seus arquivos de diretório servidos lá. Você pode configurar a porta e outras coisas, basta ver a documentação. Mas esse truque simplesmente funciona para mim quando estou com pressa para testar uma nova biblioteca ou desenvolver uma nova ideia.
Pronto, boa codificação!
EDIT:
No Python 3+, SimpleHTTPServer foi substituído por http.server. Portanto, no Python 3.3, por exemplo, o seguinte comando é equivalente:
python -m http.server 8000