Отсутствует ошибка контроллера на удаленном сервере с использованием бета-версии 3

Я работал над проектом на моей локальной машине (под управлением OS X с сервером Cake), используя CakePHP 3 Beta. Иногда я копирую этот проект на удаленный тестовый сервер (использующий Ubuntu с Apache).

В прошлый раз, когда я копировал все файлы на удаленный сервер, бета-версия 2 была самой новой версией, и сайт прекрасно работал на обеих машинах.

Когда вышла бета-версия 3, я обновил свой локальный проект и продолжил работу над ним на локальной машине, не сталкиваясь с какими-либо проблемами.

Сегодня я скопировал весь проект на тестовый сервер, так же, как он находится на моей машине (конечно, корректируя конфигурации базы данных), но на этот раз происходит нечто странное:

Когда я получаю доступ к URL-адресам, как http://www.example.com/controller/action Я получаю ошибку Missing Controller, как видно на скриншоте ниже:

Пример страницы с ошибкой

Я следовал соглашениям, как видно на документация, поэтому мой контроллер — это класс UsersController внутри файла UsersController.php

Но если я получу доступ http://www.example.com/Users/action, например, это просто работает.
Имейте в виду, что те же самые файлы работают на моем локальном компьютере с использованием строчных URL-адресов, так что это не просто опечатка или неуместный файл.
Это происходит для всех моих контролеров.

Должен ли я теперь следовать соглашениям об именах, страница ошибок предлагает мне и первым пользователям строчные буквы на всех моих контроллерах?
Это ошибка или я что-то не так делаю?

Если вам нужна любая другая информация, не стесняйтесь спрашивать.

Спасибо за помощь мне!
С наилучшими пожеланиями,
Даниил

0

Решение

Вам не хватает подходящих маршрутов, которые повернут users в Users чтобы соответствовать имени файла UsersController.phpЭто видно из сообщения об ошибке, которое говорит usersContoller пропал, отсутствует.

Он работает на вашем локальном компьютере, поскольку файловая система OS X по умолчанию нечувствительна к регистру, в отличие от Ubuntu, которая чувствительна к регистру.

Если вы недавно обновили ядро, RouteBuilder::fallback() вызов, который присутствует в маршрутах приложения по умолчанию, может отсутствовать InflectedRoute аргумент, который не был необходим раньше.

https://github.com/cakephp/cakephp/commit/5af6464a49204f873aeac52024d295787809822a#diff-37dbf1f85d9888de3ac3c50006f2704f

Итак, проверьте ваши маршруты и обновите шаблон вашего приложения, если это необходимо.

https://github.com/cakephp/app/commit/4719b42f9db0d80b3dd22edc6a4476566dbb0215

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]