simplehttprequesthandler simple pip3 example create accept python

pip3 - Invoque Python SimpleHTTPServer desde la línea de comandos sin opción de caché



python-m simplehttpserver 8000 (4)

En Windows 7, estoy usando la línea de comandos

python -m SimpleHTTPServer 8888

para invocar un servidor web simple para servir archivos desde un directorio, para su desarrollo.

El problema es que el servidor parece mantener los archivos en caché. Las versiones antiguas de los archivos se sirven a pesar de que hay nuevas disponibles.

¿Hay una manera de especificar la opción "no caché" desde la línea de comandos directamente?


Le sugiero que presione Ctrl + F5 al actualizar el navegador.

Solo encontré this , puede ser lo que está buscando (por cierto, está en ruby)


Por supuesto, el script anterior no funcionará para Python 3.x, pero solo consiste en cambiar SimpleHTTPServer a http.server como se muestra a continuación:

#!/usr/bin/env python import http.server class MyHTTPRequestHandler(http.server.SimpleHTTPRequestHandler): def end_headers(self): self.send_my_headers() http.server.SimpleHTTPRequestHandler.end_headers(self) def send_my_headers(self): self.send_header("Cache-Control", "no-cache, no-store, must-revalidate") self.send_header("Pragma", "no-cache") self.send_header("Expires", "0") if __name__ == ''__main__'': http.server.test(HandlerClass=MyHTTPRequestHandler)

Lo siento, habría agregado como comentario, pero aparentemente no tengo suficiente reputación ...


Quizás esto pueda funcionar. Guarda lo siguiente en un archivo:

serveit.py

#!/usr/bin/env python import SimpleHTTPServer class MyHTTPRequestHandler(SimpleHTTPServer.SimpleHTTPRequestHandler): def end_headers(self): self.send_my_headers() SimpleHTTPServer.SimpleHTTPRequestHandler.end_headers(self) def send_my_headers(self): self.send_header("Cache-Control", "no-cache, no-store, must-revalidate") self.send_header("Pragma", "no-cache") self.send_header("Expires", "0") if __name__ == ''__main__'': SimpleHTTPServer.test(HandlerClass=MyHTTPRequestHandler)

luego ejecútalo usando

python serveit.py 8000

para servir el directorio actual en el puerto 8000. ¡Esto fue totalmente sacado de esta esencia , y parece funcionar muy bien!

NOTA: si solo está buscando ejecutar un servidor web local para ofrecer contenido estático, es posible que le interese una solución de nodos precompensados ​​para hacer esto => http-server , que he estado usando y parece funcionar muy bien.

Además, si está en un mac, si lo ejecuta como root, puede ejecutarlo en el puerto 80 o 443. Por ejemplo

sudo python serveit.py 80

debería permitirle ejecutarlo y acceder a él desde su navegador en http://localhost


Tal vez sea el navegador que almacena en caché sus archivos, no el SimpleHTTPServer. Intenta desactivar primero el caché del navegador.