OSX上的python m SimpleHttpServer[port]

2024-04-19 23:23:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我创建了最简单的html页面

<html lang="en">
    <head>
        <meta charset="utf-8">
        <title>App</title>
    </head>
    <body>
        Hello, world.
    </body>
</html>

然后在页面的文件夹中运行python -m SimpleHTTPServe 8000。在

问题:当我转到localhost:8000时,我看到了我页面的文本。表示http服务器,而不是将其解释为html页将我的页面的每个字符串包装到<p>标记中。在

如果我打开源代码,我会得到:

^{pr2}$

Tags: 文件夹apphellolangworldtitlehtmlbody
3条回答

如果在TextEdit中编辑页面,请确保打开“格式”菜单并选择“生成纯文本”

Plain Text

如果不使用此选项保存为HTML,TextEdit将添加这些标记以保持文本文件的格式。在

我刚试过我的mac电脑,但没有观察到类似的行为:我启动服务器的方式略有不同:

  • python -mSimpleHTTPServer 8000:m和SimpleHTTPServer之间没有空格(用空格检查,行为相同)
  • 我有两个文件:a.out和a.html具有相同的内容:看起来a.out被下载,而a.html被显示(使用chrome)

我猜你的文件没有扩展名.html,你的浏览器本身正在添加标签来显示它。在

您可以尝试使用curl下载该文件,以确保:curl http://localhost:8000/a.out来自终端

注意:我正在用python2.7.5在mcbookair上运行macos10.9.4

如果您的页面如您所描述的那样显示为文本,那么很可能意味着服务器在其HTTP报头中没有使用正确的content-typeSimpleHTTPServer使用模块mimetypes来确定对大多数文件类型使用什么content-type。在

您可以自己检查:

>>> import mimetypes
>>> mimetypes.init()
>>> print mimetypes.types_map
...

或者更具体地说

^{pr2}$

请确保您的文件扩展名与mimetypes期望的一致。在

相关问题 更多 >