У чому причина помилки "Передній контролер досяг 100 повторень маршрутизатора"?


14

Як розробник Magento я стикався з цією проблемою багато разів, я знаю, що це проблема неправильної конфігурації, коли виникають деякі модулі не завантажені, ані їх маршрутизатори, що спричинює помилку. Більшість випадків це вирішено без жодних дій, в інший раз ви можете промити кеш

Я читав кілька публікацій про це, намагаючись налагодити розміщення деякого додаткового коду в Magento core Front Controller app/code/core/Mage/Core/Controller/Varien/Front.php, але в кінці це лише показує, які маршрутизатори модулів відсутні, а не чому вони не завантажуються. Кожен раз, коли це трапляється, я намагаюся шукати, які URL-адреси вводять помилку, але це марна інформація, така ж як і кодовий слід. Це завжди те саме

Може бути, це викликано конфліктами модулів? Може, це якесь завдання, яке робить щось не так? Можливо, якийсь неправильний код у старих версіях Magento? Річ у тім, що ця проблема не виникає з 1.7 версії (або якщо вона виникає, то вона є абсолютно спорадичною). Я знайшов деякі кодові відмінності в основному потоці, такі як

Mage::register('application_params', $params);

Метод run () app/code/core/Mage/Core/Model/App.phpабо

$this->_shouldSkipProcessModulesUpdates()

перевірити метод _initModules () ...

Я хочу вірити, що має бути хтось, хто остаточно знайшов причину. Якісь поради?


1
Ви на це посилалися? github.com/convenient/…
Тім

1
Плакат цієї статті зміг виправити свою проблему шляхом відміни Mage_Core_Model_Configта примушування$_useCache = false
Тім Холлман

1
Прочитавши всю статтю, я думаю, ви повинні опублікувати це як правильну відповідь на моє запитання, щоб інші користувачі могли її прочитати. Спасибі
Рауль Санчес

Відповіді:


12

Здається, у вас виникла помилка конфігурації Magento.

Існують різні форми рецензія з рішенням тут .

У цій статті автору вдалося виправити помилку шляхом переосмислення Mage_Core_Model_Configта примушування $_useCache = falseпри відновленні конфігурації.


4
Блін! Мені ніколи не доводиться отримувати відповідь на цю статтю, інші люди завжди посилаються на неї спочатку;)
Люк Роджерс

3
Дуже приємний запис @LukeRodgers!
Тім Холлмен

5
Я просто хотів би прокоментувати і сказати, що Magento прийняв це як виправлення проблеми з SUPEE-4755 github.com/convenient/…
Люк Роджерс,

2
Я також додав ще один патч. Не дуже приємно, але тут обговорювались. github.com/convenient/…
Люк Роджерс

Я стикаюся з цим питанням у Magento 2 CE версії 2.1.0. Це слід виправити правильно, оскільки це старе питання?
Анкіт Шах

6

Перевірте параметри конфігурації Magento За замовчуванням Немає маршрутний URL в

Система> Конфігурації> Веб> Сторінки за замовчуванням
. Слід встановити значення за замовчуванням cms / index / noRoute . Перевірте конкретне значення магазину, а також, чи це значення за замовчуванням було переписано тут. Magento може перейти в нескінченний цикл, поки він не досягне межі 100 ітерацій, якщо він не встановлений належним чином.

Якщо ви використовуєте Magerun , запустіть цю команду.

magerun config:set cms/index/noRoute no-route

Я знайшов рішення тут, це питання було в моєму випадку. Ви можете перевірити URL на інші параметри.

https://merchantprotocol.com/506/solved-front-controller-reached-100-router-match-iterations/


Якщо я виконую ./n98-magerun.phar config: get no-route, я отримую Не вдалося знайти значення конфігурації для "no-route", а запис конфігурації навіть не існує, ви впевнені у своїй відповіді?
Чорний

1
@Black ти робиш це неправильно. метод отримання консолі вимагає шлях - тому ваша команда повинна бути - \ n "n98-magerun.phar config: get cms / index / noRoute" \ n Перевірте параметр довідки, запустивши "n98-magerun.phar config: get - допомога "
Sandipan S
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.