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

时间:2010-12-03 01:15:02

标签: python macos terminal webserver

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

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时,我可以看到文件和目录。谁知道我做错了什么?

11 个答案:

答案 0 :(得分: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响应实际上是正确的:)

祝你好运!

答案 1 :(得分:12)

您是否尝试过http://127.0.0.1:8000/

:)

答案 2 :(得分:6)

您应该使用此链接http://127.0.0.1:8000/并可以查看其中的所有文件

答案 3 :(得分:3)

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

答案 4 :(得分:2)

尝试浏览http://localhost:8000/test.htmlhttp://127.0.0.1:8000/test.html(只要您的主机文件不像疯子一样,这两者应完全相同)。

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

答案 5 :(得分:1)

  1. 创建一个目录,例如mkdir HTTPServer_dir
  2. 在文件夹cd HTTPServer_dir
  3. 内移动
  4. 输入命令(根据python版本)python -m SimpleHTTPSever 8000 (或你想要的端口)
  5. 转到浏览器并输入http://127.0.0.1:8000/
  6. 完成!!!

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

答案 6 :(得分: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

答案 7 :(得分:0)

某些其他服务有时会使用相同的端口号。因此,我们可以尝试使用其他端口,例如

python -m SimpleHTTPServer 9090

然后只需点击http:// {您的系统IP}:9090 /

这对我有用。

答案 8 :(得分:0)

这对我有用,将您的计算机名称替换为
http://localhost:x000

答案 9 :(得分:0)

这在Windows 8上对我有效。没有下载任何软件!

在cmd中:

  1. 转到文件所在的目录。
  2. python -m SimpleHTTPServer
    显示“正在0.0.0.0端口8000上提供HTTP服务...”

现在,找出您的系统名称。对于Windows 8:控制面板->系统。您将在此处看到计算机名称。假设它是“ Abhinav”。

您的本地服务器将托管在“ Abhinav.local:8000”。

答案 10 :(得分:-2)

在python3中尝试

Linux

,并在您的浏览器中输入以下网址:

  

python -m http.server 8000 --bind 127.0.0.1