Недавно я успешно установил Symfony2 на свою машину.
Я могу получить доступ к http:/localhost/app_dev.php
(среда dev)
Однако, когда я пытаюсь получить доступ к среде prod:
http:/localhost/app.php
В браузере появляется следующее сообщение об ошибке:
Oops! Произошла ошибка
Сервер вернул "404 Not Found". Что-то сломалось. Отправьте нам электронное письмо по электронной почте и сообщите нам, что вы делали это при возникновении этой ошибки. Мы исправим его, как только возможное. Извините за возможные неудобства.
Я проверил очевидное: файл app.php существует в той же папке, что и app_dev.php, поэтому я не знаю, что вызывает это.
Есть ли у кого-нибудь решение исправить это?
[[Edit]]
Я очистил кеш, набрав: sudo php app/console cache:clear env=prod no-debug
, как рекомендовано. Теперь я получаю пустой экран. Беспокойно, что в app/logs/prod.log нет сообщений об ошибках, поэтому я не получил ни малейшего представления о том, что не так (среда prod все еще работает нормально).
Содержимое моего файла app/config/routing.yml:
### fos routing, remove later
fos_user_security:
resource: "@FOSUserBundle/Resources/config/routing/security.xml"
fos_user_profile:
resource: "@FOSUserBundle/Resources/config/routing/profile.xml"
prefix: /profile
fos_user_register:
resource: "@FOSUserBundle/Resources/config/routing/registration.xml"
prefix: /register
fos_user_resetting:
resource: "@FOSUserBundle/Resources/config/routing/resetting.xml"
prefix: /resetting
fos_user_change_password:
resource: "@FOSUserBundle/Resources/config/routing/change_password.xml"
prefix: /profile
###
# Internal routing configuration to handle ESI
#_internal:
# resource: "@FrameworkBundle/Resources/config/routing/internal.xml"
# prefix: /_internal
Вот мой файл app/config/routing_dev.yml
_welcome:
pattern: /
defaults: { _controller: AcmeDemoBundle:Welcome:index }
_demo_secured:
resource: "@AcmeDemoBundle/Controller/SecuredController.php"
type: annotation
_demo:
resource: "@AcmeDemoBundle/Controller/DemoController.php"
type: annotation
prefix: /demo
_assetic:
resource: .
type: assetic
_wdt:
resource: "@WebProfilerBundle/Resources/config/routing/wdt.xml"
prefix: /_wdt
_profiler:
resource: "@WebProfilerBundle/Resources/config/routing/profiler.xml"
prefix: /_profiler
_configurator:
resource: "@SensioDistributionBundle/Resources/config/routing/webconfigurator.xml"
prefix: /_configurator
_main:
resource: routing.yml
Я только заметил, что у меня НЕ НЕ есть routing_prod.yml **
(звонок будильника) - Symfony2 не отправляется с конфигурационным файлом производственной маршрутизации?
Содержимое файла конфигурации My Apache показано ниже:
NameVirtualHost *:80
<VirtualHost *:80>
DocumentRoot /path/to/symfony/web
ServerName localhost
# Custom log file
Loglevel warn
ErrorLog /path/localhost.error.log
CustomLog /path/localhost.access.log combined
<Directory /path/to/symfony/web>
AllowOverride None
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ app.php [QSA,L]
</Directory>
</VirtualHost>
[[Дополнительная информация]]
Содержимое приложения /logs/prod.log
[2012-08-10 18:10:38] security.INFO: заполненный SecurityContext с анонимный токен [] [] [2012-08-10 18:10:38] request.ERROR: Symfony\Component\HttpKernel\Exception\NotFoundHttpException: нет маршрута найдено для "GET/" (неперехваченное исключение) в /path/to/symfony/vendor/symfony/src/Symfony/Bundle/FrameworkBundle/EventListener/RouterListener.php строка 83 [] []