如何移除Python 3 http.server本地托管站点URL的.html后缀
Python自带的默认http.server没有自动匹配.html后缀的功能,以下两个方法操作门槛都很低,按需选择即可。
方案1:零代码改文件结构(完全不用写Python,最省心)
不需要装任何工具、写任何代码,调整下文件存放结构就行:
- 在你的示例文件夹里新建一个名为
sample的子文件夹 - 把原来的
sample.html移动到这个新建的sample文件夹里,重命名为index.html - 调整完的文件夹结构如下:
你的示例文件夹/ ├─ index.html (原首页文件) └─ sample/ └─ index.html (原sample.html的全部内容)
- 正常执行
python -m http.server启动服务即可,访问localhost:8000/sample时,服务器会自动读取sample文件夹下的index.html,直接正常打开。 - 记得同步修改两个HTML文件里的超链接:原来指向
sample.html的链接地址改成sample/即可,指向首页的链接无需额外调整。
方案2:极简自定义脚本(不用改动现有文件结构)
如果不想调整现有文件和链接,写个10行以内的Python脚本就能实现自动补全.html后缀:
- 在你的示例文件夹里新建一个名为
server.py的空白文件,把下面的代码完整复制进去保存:
from http.server import SimpleHTTPRequestHandler, HTTPServer class SuffixHandler(SimpleHTTPRequestHandler): def do_GET(self): if "." not in self.path: self.path += ".html" super().do_GET() if __name__ == "__main__": print("服务已启动,访问地址 http://localhost:8000") HTTPServer(("", 8000), SuffixHandler).serve_forever()
- 启动服务的时候不要用原来的
python -m http.server命令,改成执行python server.py即可。此时访问localhost:8000/sample,服务器会自动匹配同路径下的sample.html文件,直接正常加载,不需要改动你现有的任何HTML内容。
提示:以上方法完全适配你当前本地测试静态页面的场景,不需要额外配置复杂的服务器环境。
内容的提问来源于stack exchange,提问作者Programmer
相关产品推荐
相关产品推荐

