web-dev-qa-db-fra.com

python -m SimpleHTTPServer - Écoute le 0.0.0.0:8000 mais http://0.0.0.0:8000/test.html donne "Page non trouvée"

Après être entré dans mon dossier, j'entre

python -m SimpleHTTPServer

et obtenir 

Serving HTTP on 0.0.0.0 port 8000 ...

en réponse. Mais lorsque je clique sur http://0.0.0.0:8000/test.html je reçois une erreur de page introuvable.

J'ai aussi essayé 

pushd /path/you/want/to/serve; python -m SimpleHTTPServer; popd

tiré de cette question

Quand je frappe ls je peux voir le fichier et le répertoire. Quelqu'un sait ce que je fais mal?

18
Denis Hoctor

Je pense que les deux autres réponses tentent de préciser que 0.0.0.0 n'est pas l'URL que vous devriez visiter. Lorsqu'un serveur Web Python (tel que cherrypy par exemple) indique qu'il sert sur 0.0.0.0, cela signifie qu'il écoute tout le trafic TCP qui aboutit sur cette machine, quel que soit le nom d'hôte ou l'adresse IP demandé. Mais, si vous le changez de manière à ce que le socket écoute 127.0.0.1 ou «localhost», à moins que la demande ne concerne spécifiquement cet IP/nom d'hôte, elle ne répondra pas à la demande. Par exemple, vous pouvez souvent utiliser le nom de votre machine à la place de localhost (Ubuntu le permet, par exemple). Si le nom de votre ordinateur est "brian" et que vous avez un serveur à l’écoute le 0.0.0.0:8080, vous devriez pouvoir le joindre avec http: // brian: 8080 . Mais si ce serveur écoute sur «localhost», même si «brian» est défini pour pointer sur «localhost», le serveur ne recevra pas le message. 

Vous devez également vous assurer que le fichier se trouve vraiment dans le répertoire dans lequel vous exécutez la commande. Sinon, la réponse 404 est en fait correcte :)

Bonne chance!

30
elarson

Avez-vous essayé http://127.0.0.1:8000/ ?

:)

9
Ryan Ginstrom

Vous devriez utiliser ce lien http://127.0.0.1:8000/ et voir tous les fichiers ici

5

Vous devez saisir l'adresse IP de l'ordinateur auquel vous vous connectez, par exemple 192.168.0.2:8000. Changez-la en l'adresse IP de votre serveur. 

3
Rob

Essayez de naviguer sur http: // localhost: 8000/test.html ou http://127.0.0.1:8000/test.html (ces deux doivent être exactement la même chose tant que vos hôtes le fichier n’est pas complètement dingue).

0.0.0.0 est généralement utilisé par Windows comme adresse IP "non connectée" et peut également être utilisé comme une sorte de caractère générique pour traiter des adresses IP. Je suis un peu confus quant à la raison pour laquelle votre serveur HTTP tente d’héberger sur 0.0.0.0, cependant. Vous devrez peut-être modifier certains fichiers de configuration et les définir sur "localhost" ou "127.0.0.1".

2
The Maniac
  1. créer un répertoire, par exemple mkdir HTTPServer_dir
  2. se déplacer dans le dossier cd HTTPServer_dir
  3. en tapant la commande (selon la version de Python) python -m SimpleHTTPSever 8000 (ou le port que vous voulez)
  4. allez sur un navigateur et tapez http://127.0.0.1:8000/

Terminé !!!

Vous pouvez créer une simple page index.html dans le répertoire HTTPServer afin de pouvoir afficher une page HTML au lieu d'une liste de répertoires.

1
Giannis Tzagarakis

Exécutez ifconfig sous Linux ou ipconfig sous Windows pour rechercher l'adresse IP du serveur.

$ Sudo ifconfig
wlan0     Link encap:Ethernet  HWaddr 30:3a:64:b3:be:6a  
          inet addr:192.168.1.103  Bcast:192.168.1.255  Mask:255.255.255.0

Ici au cas où l'URL serait:

http://192.168.1.103:8000/test.html

0
Gayan Weerakutti