Отсутствует маршрут после перестройки кэша в Drupal 8 - PullRequest
0 голосов
/ 27 апреля 2019

имеет модуль phys_custom, который определяет маршрут, phys_custom.homepage (/ homepage), который работает нормально, пока я не очищу кеш, и в этот момент он больше не доступен.

Посмотрите на следующий вывод. На данный момент мне нужно всегда удалять и переустанавливать мой модуль каждый раз, когда я очищаю свой кеш. Как мне отладить это?

$ drush @stewardd8.test -l phys cr
[success] Cache rebuild complete.
$ drush @stewardd8.test -l phys pmu phys_custom
[success] Successfully uninstalled: phys_custom
$ drush @stewardd8.test -l phys pm:enable phys_custom
[success] Successfully enabled: phys_custom
$ drush @stewardd8.test -l phys ev 'print_r(drupal_get_path("module", "phys_custom") . PHP_EOL)'
sites/phys/modules/phys_custom
$ drush @stewardd8.test -l phys ev 'print_r(\Drupal\Core\Url::fromRoute("phys_custom.homepage")->toString() . PHP_EOL)'
/homepage
$ drush @stewardd8.test -l phys cr
[success] Cache rebuild complete.
$ drush @stewardd8.test -l phys ev 'print_r(drupal_get_path("module", "phys_custom") . PHP_EOL)'
sites/phys/modules/phys_custom
$ drush @stewardd8.test -l phys ev 'print_r(\Drupal\Core\Url::fromRoute("phys_custom.homepage")->toString() . PHP_EOL)'

In RouteProvider.php line 201:

 Route "phys_custom.homepage" does not exist.  

Я использую Drush 9.6.2 и Drupal 8.6.15

Я также открыл проблему на Drupal.org

Ответы [ 2 ]

1 голос
/ 27 апреля 2019

На самом деле это основная ошибка, над которой сейчас ведется работа, Расширения в многосайтовых каталогах, которые не регистрируются при восстановлении кэша . Патч устраняет проблему.

0 голосов
/ 27 апреля 2019

Эта -l phys часть в вашей команде может быть причиной проблемы.

Параметр Drush -l предназначен для нацеливания на определенный сайт в многосайтовых установках, он ожидает URI:

-l <uri> , --uri=<uri> URI of the Drupal site to use. 
 The value of --uri should always be the same as when
 the site is being accessed from a web browser (e.g. http://example.com)

При этом вам не нужно указывать его в ближайшее время.так как псевдоним @stewardd8.test хорошо определен, и я имею в виду, что в соответствующем определении псевдонима сайта отображаются по крайней мере эти 2 параметра:

test:
  root: /path/to/stewardd8
  uri: http://example.com

Если эти параметры установлены правильно, выможно запустить drush status и проверить вывод:

$ drush @stewardd8.test status
Drupal version                  :  8.6.14
Site URI                        :  http://example.com    # <- as expected

Но, если вы переопределите URI сайта с помощью -l phys, все может работать не так, как ожидалось:

$ drush @stewardd8.test -l phys status
Drupal version                  :  8.6.14
Site URI                        :  phys                  # <- invalid

Поэтому я предлагаюВы начинаете исправлять это, прежде чем копать дальше.Также вы можете добавить опцию -v, --verbose, чтобы сделать drush более объемным, например, drush -v @stewardd8.test cr.

Тогда, если это не решит проблему с отсутствующим маршрутом, я бы внимательно изучил логи Drupal / PHP / SQL (в этомпорядок) особенно при запуске команды восстановления кеша.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...