【发布时间】:2021-08-13 13:28:30
【问题描述】:
当我想在 Web 服务器上使用 python 托管 HTML 文件时遇到问题。
我转到 cmd 并输入:
python -m http.server
该命令有效,但是当我打开域名时,我会得到一个 HTML 页面列表,我可以单击它并打开它们。我怎样才能做到这一点,当我在 chrome 中打开域时,它会立即显示 main.html?
谢谢
【问题讨论】:
当我想在 Web 服务器上使用 python 托管 HTML 文件时遇到问题。
我转到 cmd 并输入:
python -m http.server
该命令有效,但是当我打开域名时,我会得到一个 HTML 页面列表,我可以单击它并打开它们。我怎样才能做到这一点,当我在 chrome 中打开域时,它会立即显示 main.html?
谢谢
【问题讨论】:
您可以添加其他选项:
python -m http.server --directory C:/ESD/ --bind 127.0.0.1
--directory会告诉python在哪个文件夹中查找html文件,这里我指定了路径C:/ESD/
--bind 将告诉 python 服务器应该在哪个 ip 上运行
如果你想直接打开文件而不是列出所有html文件的目录,你必须将你的main.html重命名为index.html
【讨论】:
它可以工作,但是当我在 chrome 中打开它时,它会显示我的 html 文件列表,当我单击一个时它会转到它。
这是预期的行为。
我该怎么做才能在 chrome 中打开它时立即显示 main.html?
将main.html 重命名为index.html。正如docs 所说,处理GET 请求的标准程序是
如果请求被映射到一个目录,则检查该目录是否有名为 index.html 或 index.htm 的文件(按此顺序)。如果找到,则返回文件的内容;否则通过调用 list_directory() 方法生成目录列表。该方法使用 os.listdir() 扫描目录,如果 listdir() 失败返回 404 错误响应。
【讨论】: