Неправильная длина содержимого при запуске Perl Dancer на Apache

#perl #apache #dancer #http-content-length

#perl #apache #dancer #http-content-length

Вопрос:

Я только начинаю настраивать приложение с использованием Perl Dancer на Apache. Я использовал предоставленный скрипт dancer для настройки моей первоначальной структуры каталогов и смог настроить все до такой степени, что увидел начальную страницу «Perl is Dancing». К сожалению, я заметил, что самый конец HTML-разметки не включается, когда я просматриваю исходный код. Дальнейшее расследование с помощью Fiddler выявило следующую ошибку:

Несоответствие длины содержимого: в заголовке ответа указано 3168 байт, но сервер отправил 3 364 байта.

Увидев это, я провел некоторые дополнительные эксперименты, запустив приложение Dancer напрямую через вызов app.pl из командной строки. Когда я обращаюсь к этому серверу, я получаю полную HTML-разметку, а не содержимое -о проблемах с длиной содержимого сообщает Fiddler.

У кого-нибудь есть какие-либо идеи, почему я могу видеть эту проблему с неправильной длиной содержимого при запуске через Apache? Я должен также упомянуть, что я выполняю сгенерированный CGI-скрипт, который вызывает app.pl через Plack::Runner. Пожалуйста, дайте мне знать, если мне нужно предоставить дополнительные сведения.

Версия Dancer равна 1.3030, а версия Plack равна 0.9976.

Комментарии:

1. Полезно знать ваши версии Dancer и Plack.

Ответ №1:

Оказывается, была проблема с Plack. В истории изменений упоминается «Исправлен обработчик CGI / FastCGI, чтобы гарантировать, что новые строки не искажаются на платформах Win32» для версии 0.9977 (я не упомянул ранее, что я работаю на Win32). Я обновил Plack до последней версии (в настоящее время 0.9978), и проблема исчезла.