mod_python.publisher始终返回内容类型为'text/plain
我刚刚在Apache上设置了mod python,现在想让一个简单的脚本运行起来,但当我打开页面时,所有的HTML都变成了普通文本显示。我觉得这是mod_python.publisher的问题,也就是我设置的处理程序。我查看了它的源代码,发现有一行代码是用来区分'text/plain'和'text/html'的,它会在输出的文件最后一百个字符中查找',所以我在我的脚本里加上了这个字符,但还是不行。我甚至尝试注释掉一些代码,让publisher把所有内容都设置为'text/html',但刷新页面后还是一样的结果。可能是我设置错了什么。
这是我在httpd.conf中的配置
< Directory "C:/Program Files/Apache Software Foundation/Apache2.2/htdocs">
SetHandler mod_python
PythonHandler mod_python.publisher
PythonDebug On
< /Directory >
1 个回答
3
你的配置看起来没问题:我有一个正常工作的mod_python.publisher脚本,设置基本上和你的一样。
还有一些其他的想法:
当你尝试编辑发布者的源代码时,有重启你的网页服务器吗?因为服务器启动时只会加载一次Python库。
发布者的自动检测会查找一个结束的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