mod_python.publisher всегда дает тип содержимого «текст / обычный» - PullRequest
0 голосов
/ 07 декабря 2008

Я только что установил мод Python с Apache, и я пытаюсь заставить работать простой скрипт, но в результате он публикует все мои html в виде простого текста при загрузке страницы. Я подумал, что это проблема с mod_python.publisher, обработчик, который я также установил. Я искал его источник и нашел строку, в которой он различает «text / plain» и «text / html», и он ищет в моем скрипте последние сто символов файла, для которого он выводит «, поэтому вставил и тогда это все еще не работало. Я даже пытался закомментировать часть кода, чтобы издатель установил все как «text / html», но он все равно делал то же самое, когда обновлял страницу. Может, я что-то не так настроил.

Вот моя конфигурация в httpd.conf

<Каталог "C: / Program Files / Apache Software Foundation / Apache2.2 / htdocs">
SetHandler mod_python
PythonHandler mod_python.publisher
PythonDebug On

1 Ответ

3 голосов
/ 07 декабря 2008

Ваша конфигурация выглядит хорошо: у меня есть рабочий скрипт mod_python.publisher с практически такими же настройками.

Несколько других мыслей:

  • Когда вы попытались отредактировать исходный код издателя, перезапустили ли вы свой веб-сервер? При первом запуске сервера библиотеки Python загружаются только один раз.

  • Автоопределение издателя ищет закрывающий тег 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
...