mod_python.publisher винаги дава тип съдържание „text/plain“

Току-що настроих mod python с apache и се опитвам да накарам прост скрипт да работи, но това, което се случва, е, че публикува целия ми html като обикновен текст, когато заредя страницата. Реших, че това е проблем с mod_python.publisher, манипулаторът, който също зададох. Търсих в източника му и намерих реда, където прави разлика между „text/plain“ и „text/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