0

我刚刚用 apache 设置了 mod python,我试图让一个简单的脚本工作,但是当我加载页面时,它会将我所有的 html 作为纯文本发布。我认为这是 mod_python.publisher 的问题,我也设置了它的处理程序。我搜索了它的源代码,找到了区分'text/plain'和'text/html'的行,它在我的脚本中搜索它输出的文件的最后一百个字符,所以我把它放进去,然后它仍然没有工作。我什至尝试注释掉一些代码,以便发布者将所有内容设置为“文本/html”,但当我刷新页面时它仍然做同样的事情。也许我设置了错误的东西。

这是我在 httpd.conf 中的配置

<Directory "C:/Program Files/Apache Software Foundation/Apache2.2/htdocs">
SetHandler mod_python
PythonHandler mod_python.publisher
PythonDebug On
</Directory>

4

1 回答 1

3

您的配置看起来不错:我有一个工作的 mod_python.publisher 脚本,其设置基本相同。

其他一些想法:

  • 当您尝试编辑发布者源代码时,您是否重新启动了 Web 服务器?它只在服务器首次启动时加载 Python 库一次。

  • Publisher 的自动检测会查找结束 HTML 标记:</html>。是你加的吗?(我在您的问题中看不到它,但是当您发布它时它可能只是被剥离了。)

  • 如果没有其他方法,您始终可以显式设置内容类型。它的代码更多,但可以保证始终如一地工作。将请求中的 content_type 字段设置为“text/html”。

例如,如果您的脚本现在看起来像这样:

def index(req, an_arg='default'):
    return some_html

它会变成:

def index(req, an_arg='default'):
    req.content_type = 'text/html'
    return some_html
于 2008-12-07T16:15:26.787 回答