Laravel 5.1.1 LTS: неполное кодирование с чередованием

Я видел много этих отчетов, но ничего не сказал о последнем laravel 5.1.1 (LTS). Просто запустили новое приложение, и при запросе app.local/:

я получаю следующую ошибку:

GET http://app.local/ net:: ERR_INCOMPLETE_CHUNKED_ENCODING

Это займет чуть более 5 секунд, чтобы прийти к такому выводу.

Теперь это, по сути, новая установка - я внес только следующие изменения:

  • Используйте FallbackResource вместо mod_rewrite для отправки запроса на index.php и
  • Задайте путь приложения к /../name.application/bootstrap/autoload.php в index.php (перемещены app, config и т.д. в каталог name.application.

Я получаю вышеуказанную ошибку только при отправке запроса в корень домена - app.local/. Для этого существует существующий маршрут, и он настроен на возвращение "Hello" (return response('Hello')). Этот ответ отображается немедленно, но страница продолжает загружаться в течение 5 секунд, а затем консоль выдает эту ошибку.

Если я запрошу /test, ответ будет быстрым, и я не получу ошибку.

По-видимому, это проблема с Laravel, и я не совсем уверен, откуда она взялась. Это не проблема .htaccess, поскольку возврат моих изменений не имеет значения. Альтернативно, это может быть проблема Apache, но ничто не указывает на то, что это так.

Для справки, я запускаю Apache 2.4 с PHP 5.6 в Windows 8.1.

Эта проблема не ограничивается Chrome, как и другие, для других версий.

Любое руководство будет оценено.

Обновление:. Проверяя на том же VirtualHost, Laravel 4.2, похоже, делает то же самое. Может ли это быть проблемой сервера?

Ответы

Ответ 1

Посмотрев на ответы здесь и осознав, что это странная проблема, я попытался вернуться к нормальному подходу mod_rewrite, и он начал работать как ожидается.

Интересно, что этого не произошло в первый раз, поэтому вопрос был отправлен.

Таким образом, это более чем вероятно проблема с сервером. Запуск приложения с рабочего сервера с настройкой, описанной в моем вопросе, работал отлично.

Ответ 2

У меня недостаточно репутации, чтобы комментировать, что все это гарантирует, а не ответ. Как правило, это связано с кэшированием, будь то на уровне сервера или приложения. Предполагая, что это полностью установленная по умолчанию (нет конфигурации app.php), все, что нужно проверить:

Разрешения для файлов. По умолчанию Laravel будет использовать кеширование на основе файлов: http://laravel.com/docs/5.1/cache

Неправильные права доступа к файлам в некоторых конфигурациях сервера могут вызвать это (см. здесь, чтобы установить правильные разрешения: http://laravel.com/docs/5.1/installation#basic-configuration). Если права правильны, замените кэширование базы данных и посмотрите, не изменилось ли это (вам нужно создать схему).

Журналы ошибок Apache.. В той же ситуации, если Laravel передает потоковый поток, а затем не работает в индексе, может быть некоторая информация здесь.

Если это нестандартная установка Laravel, узнать, что вы настроили, поможет?

Ответ 3

Также обратите внимание, что .local TLD является reserverd для многоадресной DNS (Bonjour и т.д.), https://en.wikipedia.org/wiki/.local

изменить:

Проблемы с разрешением имен могут возникать, если многоадресное DNS-программное обеспечение используется совместно с сетью, которая реализует локальный домен DNS верхнего уровня.

http://laravel.io/forum/02-08-2014-another-problem-only-with-chrome?page=1#reply-15185

Похоже, что это происходит от флага хрома "Встроенный асинхронный DNS". Вы можете перейти к флагам chrome://в Chrome/Chromium, установить этот флаг на "отключено" и перезапустить браузер. После этого localhost будет работать как шарм.

Может быть релевантным, а может и не быть, но предотвратит будущие проблемы с DNS...