Маршрут находится в списке отладки, но возвращает 404 в Symfony 4

Итак, я только что установил последнюю версию Symfony 4. После установки запустите браузер, и появится приветственное приветствие. Все хорошо!

Затем я создал новый контроллер, используя make:controller. Я назвал этот контроллер Client и использую аннотации, как и другой контроллер по умолчанию. Я настроил маршрутизацию следующим образом:

/**
 * @Route("/client", name="client")
 */
public function index()
{
    // replace this line with your own code!
    return $this->render('@Maker/demoPage.html.twig', [ 'path' => str_replace($this->getParameter('kernel.project_dir').'/', '', __FILE__) ]);
}

Обновил браузер и все нормально, ошибок нет.

Затем я вручную ввел путь в браузер, чтобы проверить, действительно ли он работает:

localhost:8000/client

Проблема. URL-адрес вернул стандартный Apache 404

Not Found
The requested URL /client was not found on this server.

Apache/2.4.18 (Ubuntu) Server at new.staff-fdr.dev Port 80

Однако маршрут отладки видит это:

-------------------------- -------- -------- ------ ------------------
  Name                       Method   Scheme   Host   Path   

 -------------------------- -------- -------- ------ -----------------
  client                     ANY      ANY      ANY    /client  
  index                      ANY      ANY      ANY    /       
  _twig_error_test           ANY      ANY      ANY    /_error/{code}.

person Riza    schedule 31.01.2018    source источник
comment
Отсутствует хтакцесс.   -  person malcolm    schedule 31.01.2018


Ответы (3)


Отсутствует .htaccess файл.

composer config extra.symfony.allow-contrib true

composer req symfony/apache-pack
person malcolm    schedule 31.01.2018
comment
Это решило мою проблему, я сделал только composer req symfony/apache-pack - person Code; 25.07.2018

У меня также была эта проблема, и вот несколько других идей, если это не работает для вас. Один из них — настроить веб-сервер, как описано здесь. У меня работал оптимизированный апач с mod_php:

https://symfony.com/doc/master/setup/web_server_configuration.html

Во-вторых, на моем веб-сервере не было включено переписывание модов. В конечном итоге это было исправлением, которое заставило меня начать работу. Бежать:

sudo a2enmod переписать

затем

перезагрузка службы sudo apache2

Это должно вас завести.

person Johnny Wales    schedule 23.02.2018
comment
Имел одну и ту же проблему в двух разных проектах и ​​понятия не имел о причине. Это было решением, большое спасибо! - person MNN; 01.11.2019

В моем случае я просто забыл изменить конфигурацию виртуального хоста с веб-папки на общую папку при переходе на symfony flex.

<VirtualHost *:80>
    ServerAdmin [email protected]
    DocumentRoot "C:/xampp/htdocs/myproject/web/"
    ServerName dev.myproject.com
    ServerAlias dev.myproject.com
    <Directory "C:/xampp/htdocs/myproject/web/">
        Options Indexes FollowSymLinks Includes ExecCGI
        AllowOverride All
        Require all granted
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

TO

<VirtualHost *:80>
    ServerAdmin [email protected]
    DocumentRoot "C:/xampp/htdocs/myproject/public/"
    ServerName dev.myproject.com
    ServerAlias dev.myproject.com
    <Directory "C:/xampp/htdocs/myproject/public/">
        Options Indexes FollowSymLinks Includes ExecCGI
        AllowOverride All
        Require all granted
        Order allow,deny
        Allow from all
     </Directory>
</VirtualHost>
person Tortus    schedule 21.11.2018