Хорошо, у меня была та же проблема, и очистка кеша не решила ее.После часа чтения постов, где все говорят «очистить кеш», я решил по-настоящему понять, что происходит.Поэтому я постараюсь объяснить другим людям, таким как я (которые только начали).Надеюсь, я не ошибаюсь, и если да, поправьте меня, пожалуйста.
Я предполагаю, что вы следуете учебнику, в котором у вас есть Acme/DemoBundle
.И доступ к нему из производственной среды дает вам 404
.Прежде всего, вы должны четко понимать, что означает пакет в Symfony.Это что-то вроде плагина.Это похоже на головоломку.Symfony - это большая головоломка, а ваше приложение - часть головоломки.
Итак, сначала давайте посмотрим на файл AppKernel.php
в ./app
.То, что мы видим, это регистрация пакетов.Как положить кусочки головоломки.И сначала мы говорим «хорошо, я хочу основные части головоломки, пакеты Symfony», а затем мы говорим «и если я нахожусь в режиме отладки, я также хочу некоторые другие части».И есть твоя часть, твоя связка.Вот почему вы не можете получить к нему доступ из производственной среды.Вы регистрируете пакет только из среды разработчика.Зарегистрируйте свой пакет (Acme/DemoBundle/AcmeDemoBundle
) вверху, и вы сможете получить к нему доступ из производственной среды.
Во-вторых, перейдите в ./app/config/routing_dev.yml
.Это маршрутизация для среды разработки.Мы говорим: «Хорошо, у меня есть некоторая информация о маршрутизации в @AcmeDemoBundle/Resources/config/routing.yml
, и в среде разработки наш пакет найден. Но посмотрите в ./app/config/routing.yml
. Мы ничего не упоминаем о нашей пользовательской маршрутизации.Я не знаю о существовании нашего файла маршрутизации. И это в производственной среде. Поэтому добавление последней части routing_dev.yml
к routing.yml
(в ./app/config/
) должно решить проблему.
После этогоочистите кеш и проверьте, работает ли /app.php/random/[number]
. Должно быть.
Надеюсь, это поможет кому-то вроде меня, понимая некоторые основы.