Laravel 6

The GET method is not supported for this route. Supported methods: HEAD.

Avatar de michelange2008
michelange2008

Bonjour,

Il m'arrive récemment un nouveau problème pour lequel la recherche sur internet n'a donné aucun résultat. J'en déduis que c'est ma configuration qui a un problème. Je l'ai décortiqué ainsi. Je suis sous Laravel 7.8.

La commande php artisan:optimize crée, entre autre, un fichier routes-v7.php qui est une mise en cache des routes apparemment propre à la version 7.

Le problème est que ça me renvoie l'erreur The GET method is not supported for this route. Supported methods: HEAD. mais uniquement pour la route racine /. Toutes les autres routes fonctionnent normalement. Je sais que la version 7 ne supporte pas que 2 routes portent le même nom et j'ai vérifié toutes mes routes.

J'ai aussi essayé de faire des modifications manuelle du fichier routes-v7.php pour comprendre l'origine du problème. La partie de ce fichier qui pose problème est la suivante:

  '/' =>
  array (
    0 =>
    array (
      0 =>
      array (
        '_route' => 'accueil',
      ),
      1 => NULL,
      2 =>
      array (
        'HEAD' => 0,
        'GET' => 1,
      ),
      3 => NULL,
      4 => false,
      5 => false,
      6 => NULL,
    ),
  ),
  

Si je remplace '/' par '/accueil' et que je modifie en conséquence l'adresse dans mon navigateur, l'erreur disparaît et tout marche. Mais il m'est tout de même indispensable d'avoir une adresse racine '/' rien que pour l'entrée sur le site.

Evidemment si je supprime le fichier routes-v7.php (manuellement ou par la commande php artisan route:clear) tout marche bien, mais j'imagine qu'il est préférable d'avoir les routes en cache pour des questions de performance.

Quelqu'un a-t-il une idée de l'origine du problème ?

Merci

Michel

Posté il y a 6 mois
Avatar de bestmomo
bestmomo

Salut,

Dans mon dernier développement en cours (Laravel 7.9.2) j'ai aussi une route racine et quand je crée le cache j'obtiens le même code que toi à part les valeurs de GET et HEAD :

'/' => 
array (
  0 => 
  array (
    0 => 
    array (
      '_route' => 'home',
    ),
    1 => NULL,
    2 => 
    array (
      'GET' => 0,
      'HEAD' => 1,
    ),
    3 => NULL,
    4 => false,
    5 => false,
    6 => NULL,
  ),
),

Pour moi ça fonctionne très bien.

Posté il y a 6 mois
Avatar de michelange2008
michelange2008

Salut BestMomo,

Merci de ta réponse rapide... à mieux regarder mon routes-v7.php, je constate que c'est le même que le tien (dans mon précédent message, j'avais dû coller une version que j'avais essayé de modifier).

Comme toi j'ai bien

          array (
            'GET' => 0,
            'HEAD' => 1,
          ),

Mais ça ne marche toujours pas.

Une idée de l'origine d'un tel problème ?

Merci

Posté il y a 6 mois
Avatar de bestmomo
bestmomo

Aucune idée mais ce que je ferais c'est déjà ne garder que cette route pour voir déjà si ça fonctionne, et si c'est le cas en rajouter par paquets pour localider le souci.

Posté il y a 6 mois
Avatar de michelange2008
michelange2008

Re,

J'ai tout essayé mais rien n'y fait.

Chose étonnante, sur le site distant tout marche bien, c'est sûr mon site de travail en localhost que ça coince.

Encore merci pour ta assiduité à répondre.

Posté il y a 6 mois
Avatar de bestmomo
bestmomo

Bon alors c'est pas bien grave, aucun intérêt de mettre en cache en local.

Posté il y a 6 mois

Vous ne pouvez pas répondre à ce sujet.