Si está trabajando en un pequeño proyecto de front-end y desea probarlo localmente, normalmente lo abriría apuntando su directorio local en el navegador web, por ejemplo ingresando file: /// home / erick / mysuperproject / index .html en su barra de URL. Sin embargo, si su sitio está intentando cargar recursos, incluso si están ubicados en su directorio local, es posible que vea advertencias como esta:
XMLHttpRequest no puede cargar el archivo: ///home/erick/mysuperproject/mylibrary.js. Las solicitudes de origen cruzado solo son compatibles con HTTP.
Chrome y otros navegadores modernos han implementado restricciones de seguridad para las solicitudes de origen cruzado, lo que significa que no puede cargar nada a través de file: ///, debe usar el protocolo http: // en todo momento, incluso localmente, debido a las políticas del mismo origen. Tan simple como eso, necesitaría montar un servidor web para ejecutar su proyecto allí.
Este no es el fin del mundo y hay muchas soluciones, incluido el viejo Apache (con VirtualHosts si está ejecutando varios otros proyectos), node.js con express, un servidor Ruby, etc. o simplemente modificando su configuración del navegador.
Sin embargo, hay una solución más simple y liviana para los perezosos. Puede usar SimpleHTTPServer de Python. ¡Ya viene incluido con Python, por lo que no necesita instalar ni configurar nada en absoluto!
Así que cd al directorio de tu proyecto, por ejemplo
1 cd / home / erick / mysuperproject y luego simplemente use
1 python -m SimpleHTTPServer Y eso es todo, verás este mensaje en tu terminal
1 Sirviendo HTTP en 0.0.0.0 puerto 8000 ... Así que ahora puede volver a su navegador y visitar http://0.0.0.0:8000todos los archivos de su directorio que se encuentran allí. Puede configurar el puerto y otras cosas, solo consulte la documentación. Pero este simple truco me funciona cuando tengo prisa por probar una nueva biblioteca o desarrollar una nueva idea.
¡Listo, codificación feliz!
EDITAR:
En Python 3+, SimpleHTTPServer ha sido reemplazado por http.server. Entonces, en Python 3.3, por ejemplo, el siguiente comando es equivalente:
python -m http.server 8000