mod_python.publisher всегда дает тип контента «текст/обычный»

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

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

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


person The.Anti.9    schedule 07.12.2008    source источник
comment
Что не так с mod_wsgi? Что не так с более полной структурой веб-сервера, такой как Django?   -  person S.Lott    schedule 07.12.2008


Ответы (1)


Ваша конфигурация выглядит нормально: у меня есть работающий скрипт 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
person Moss Collum    schedule 07.12.2008