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...