Symfony не работает маршрут в app.php

webplus

Новичок
Здравствуйте!
Начал разбираться с Symfony и столкнулся с такой проблемой: после установки Symfony на хостинг я прописал маршрут к контролеру в файле app/config/routing.yml:
Код:
_hello:
    pattern: /
    defaults: { _controller: AcmeDemoBundle:Demo:hello,name:test }
Это маршрут только срабатывает если зайти на файл app_dev.php , но если зайти на app.php то выдает ошибку: Oops! An Error Occurred The server returned a "404 Not Found"
Подскажите пожалуйста в чем может быть проблема?
 

peon

Lok'tar ogar
Если сайт не на vds, то с терминалом не поработаешь. Делай права на фтп.
ctrl+r hotkey для cmd.exe
 

keltanas

marty cats
Попытался удалить кэш через фтп, но он не удаляется, наверно права не подходят.
Потому что не надо править проект на продакшене. Тем более через FTP :confused: Это моветон. Если совсем все плохо, открой web/.htaccess и измени app.php на app_dev.php
Как удалить кэш через командную строку, как запустить эту ком.строку, для этого наверно нужна специальная программа?
Если сидишь в венде, то putty или cygwin. Подключаешься через ssh и удаляешь.
Если не в венде, то таких вопросов вообще быть не должно;)
Если сайт не на vds, то с терминалом не поработаешь
Что, правда?
 
  • Like
Реакции: WMix

webplus

Новичок
вот что выдает файл prod.log
[2014-03-20 19:49:56] request.INFO: Matched route "hello" (parameters: "_controller": "AcmeHelloBundle:Hello:index", "name": "cxvcccv", "_route": "hello") [] []
[2014-03-20 19:49:56] request.CRITICAL: Uncaught PHP Exception InvalidArgumentException: "Bundle "AcmeHelloBundle" does not exist or it is not enabled. Maybe you forgot to add it in the registerBundles() method of your AppKernel.php file?" at /home/extremstyle/public_html/Symfony/app/bootstrap.php.cache line 2325 {"exception":"[object] (InvalidArgumentException: Bundle \"AcmeHelloBundle\" does not exist or it is not enabled. Maybe you forgot to add it in the registerBundles() method of your AppKernel.php file? at /home/extremstyle/public_html/Symfony/app/bootstrap.php.cache:2325)"} []

Регистрацию Bundl я сделал в файле AppKernel.php
Также при заходе на app_dev.php все работает, а на app.php выдает 500 ошибку, кеш чистил
 

keltanas

marty cats
Регистрацию Bundl я сделал в файле AppKernel.php
Также при заходе на app_dev.php все работает, а на app.php выдает 500 ошибку, кеш чистил
Надеюсь, что подключил его не так, как здесь?
https://github.com/symfony/symfony-standard/blob/master/app/AppKernel.php#L22
И маршрут прописал не в этом файле
https://github.com/symfony/symfony-standard/blob/master/app/config/routing_dev.yml
 

webplus

Новичок
Надеюсь, что подключил его не так, как здесь?
https://github.com/symfony/symfony-standard/blob/master/app/AppKernel.php#L22
И маршрут прописал не в этом файле
https://github.com/symfony/symfony-standard/blob/master/app/config/routing_dev.yml
Вот подключение в файле AppKernel.php : $bundles[] = new Acme\HelloBundle\AcmeHelloBundle();
вот прописал в routing_dev.yml :
_acme_hello:
resource: "@AcmeHelloBundle/Resources/config/routing.yml"

Все равно выдает 500 ошибку. а на app_dev.php все работает
 

keltanas

marty cats
facepalm

подумай, для чего нужно разделение на окружения? и зачем к файлам приставки _dev, _prod...
 

webplus

Новичок
facepalm

подумай, для чего нужно разделение на окружения? и зачем к файлам приставки _dev, _prod...
_dev - это для тестирования, а _prod - это рабочая область.
Но в чем проблема понять все равно не могу. Если есть какие то соображения, то напиши пожалуйста, а то я уже не один день мучаюсь.
 

keltanas

marty cats
Если _dev для тестирования, для чего тогда _test?

В AppKernel бандл должен быть прописан как-то так:
PHP:
    $bundles[] = new Acme\HelloBundle\AcmeHelloBundle();
    if (in_array($this->getEnvironment(), array('dev', 'test'))) {
        $bundles[] = new Symfony\Bundle\WebProfilerBundle\WebProfilerBundle();
        $bundles[] = new Sensio\Bundle\DistributionBundle\SensioDistributionBundle();
        $bundles[] = new Sensio\Bundle\GeneratorBundle\SensioGeneratorBundle();
    }
т.е. за пределами этого условия. Т.к. внутри условия подключаются бандлы, предназначенные только для разработки.

Но, если ты собираешься отлаживать код в prod-окружении, тебя постигнет неудача. Так не делают.

Чтобы почистить кеш наверняка, попробуй
Код:
rm -rf app/cache/*
а то я уже не один день мучаюсь.
Так надо не мучится, а документацию читать ;)
 
Сверху