2008-12-07 2 views
0

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

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

< Справочник "C:/Program Files/Apache Software Foundation/apache2.2/HTDOCS">
SetHandler mod_python
PythonHandler mod_python.publisher
PythonDebug На
</Каталог>

+0

Что случилось с mod_wsgi? Что случилось с более полной инфраструктурой веб-сервера, такой как Django? – 2008-12-07 16:54:13

ответ

3

Ваша конфигурация л ooks okay: У меня есть рабочий скрипт 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 
Смежные вопросы