python -m SimpleHTTPServer - 在0.0.0.0:8000上听,但http://0.0.0.0:8000/test.html给出“找不到页面”

问题描述 投票:18回答:8

放入我的文件夹后,我输入

python -m SimpleHTTPServer

得到

Serving HTTP on 0.0.0.0 port 8000 ...

回复。但当我点击http://0.0.0.0:8000/test.html我得到一个页面未找到错误。

我也试过了

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

取自this question

当我点击ls时,我可以看到文件和目录。谁知道我做错了什么?

python macos terminal webserver
8个回答
31
投票

我认为另外两个答案是试图说明0.0.0.0不是你应该访问的URL。当Python Web服务器(例如,像cherrypy)说它在0.0.0.0上服务时,这意味着它正在侦听最终在该机器上的所有TCP流量,无论所请求的主机名或IP是什么。但是,如果您更改它以使套接字侦听127.0.0.1或“localhost”,那么除非该请求专门针对该IP /主机名,否则它将不响应该请求。例如,很多时候您可以使用您的机器名而不是localhost(例如,ubuntu允许这样做)。如果您的计算机名称是“brian”并且您有服务器正在监听0.0.0.0:8080,那么您应该能够使用http://brian:8080访问该服务器。但是,如果该服务器正在侦听“localhost”,即使“brian”设置为指向“localhost”,服务器也不会收到该消息。

您还需要确保该文件确实位于您运行命令的目录中。否则,404响应实际上是正确的:)

祝好运!


12
投票

你试过http://127.0.0.1:8000/吗?

:)


6
投票

您应该使用此链接http://127.0.0.1:8000/并可以看到那里的所有文件


3
投票

您必须输入连接到的计算机的IP地址,例如192.168.0.2:8000将其更改为服务器的IP地址。


2
投票

尝试浏览http://localhost:8000/test.htmlhttp://127.0.0.1:8000/test.html(只要你的主机文件不像所有疯狂一样,那两个应该完全相同)。

Windows通常将0.0.0.0用作“未连接”IP,并且在处理IP时也可以用作一种通配符。我对你的HTTP服务器试图在0.0.0.0上托管的原因感到有点困惑。您可能需要编辑一些配置文件并将其设置为“localhost”或“127.0.0.1”。


1
投票
  1. 创建目录,例如mkdir HTTPServer_dir
  2. 移动文件夹cd HTTPServer_dir
  3. 键入命令(根据python版本)python -m SimpleHTTPSever 8000(或您想要的端口)
  4. 继续浏览器并输入http://127.0.0.1:8000/

完成!!!

您可以在HTTPServer_dir中创建一个简单的index.html页面,这样您就可以看到一个html页面而不是目录列表


0
投票

在Linux上运行ifconfig或在Windows上运行ipconfig以查找服务器的IP地址。

$ 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

如果网址是:

http://192.168.1.103:8000/test.html


-2
投票

在python3中试试这个

python -m http.server 8000 --bind 127.0.0.1

并在您的浏览器中这个网址:

http://127.0.0.1:8000/

© www.soinside.com 2019 - 2024. All rights reserved.