IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Symfony PHP Discussion :

TWIG erreur 404


Sujet :

Symfony PHP

  1. #1
    Membre éclairé Avatar de elvan49
    Profil pro
    Développeur Web
    Inscrit en
    Octobre 2006
    Messages
    274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Octobre 2006
    Messages : 274
    Par défaut TWIG erreur 404
    Bonjour à tous,
    J'ai cherché dans plusieurs post des réponses à mon souci, en vain. J'ai dû passer à côté. Bref !
    Je récupère la gestion d'un site symfony avec 3 pages en plus de la home.
    Or, seule la home s'affiche. Toutes les autres me retournent, par exemple pour la page la-table :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Not Found
    
    The requested URL /la-table was not found on this server.
    Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.
    J'ai regardé dans le src/Controller/Default/DefaultController.php mais tout semble correct
    Je n'ai rien vu d'anormal dans le .htaccess
    Et les vues (src/Ressources/views/...) sont toutes là.
    Je sèche totalement. Bon il faut dire que symfony je débute...

    Précision : même la page error.html.twig ne s'affiche pas... ça ressemble à une erreur d'apache...

    Merci pour les truyaux.

  2. #2
    Membre émérite
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2013
    Messages
    739
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Novembre 2013
    Messages : 739
    Par défaut
    Bonjour;
    TWIG est le moteur de templating de Symfony .
    404 est une erreur client .
    " la-table was not found on this server. " ca à l'air erreur serveur .
    On attend d'autres détails ( web profiler , fichier log , code action controlleur ..)

  3. #3
    Membre extrêmement actif
    Avatar de dukoid
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2012
    Messages
    2 100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 2 100
    Par défaut
    peut être bien un problème de routing ?

    il doit exister une correspondance entre url et une action d'un controller.
    on fait ça soit dans un fichier routing.yml
    soit par annotation sur l'action du controller en question

    pour lister toute les routes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    php app/console debug:router
     
       ou 
     
    //  >= symfony 3.0
    php bin/console debug:router

  4. #4
    Membre éclairé Avatar de elvan49
    Profil pro
    Développeur Web
    Inscrit en
    Octobre 2006
    Messages
    274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Octobre 2006
    Messages : 274
    Par défaut
    Je ne peux pas faire de test console, le site est en prod sur hébergement distant...
    J'avais bien pensé à une erreur de route mais je ne mets pas la main sur les fichiers .yml
    Je vous mets le code du DefaultController.php, celui-ci fonctionne puisque lorsque je modifie par exemple le bloc de "la-table" pour que celui-ci affiche la homepage ça marche...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
     
    <?php
     
     
    /*
     * This file is part of a MyProd.net project.
     * 
     * (c) Fabien D. <fabien at myprod.net>
     * 
     * For the full copyright and license information, please view the LICENSE
     * file that was distributed with this source code.
     */
     
     
    use Symfony\Component\HttpFoundation\Request;
    use Symfony\Component\HttpFoundation\Response;
     
     
     
     
     
     
    /**
     * Homepage
     */
    $app->get('/', function(Request $request) use ($app) {
     
        $content = $app['twig']->render('Default/home.html.twig');
     
        $response = new Response();
        $response->setContent($content);
     
        $response->setPublic();
        $response->setETag(md5($content));
        $response->isNotModified($request);
     
        return $response;
    })
    ->bind('homepage'); 
     
     
    /**
     * La Table
     */
    $app->get('/la-table', function(Request $request) use ($app) {
     
     
        $content = $app['twig']->render('Default/la-table.html.twig');
     
        $response = new Response();
        $response->setContent($content);
     
        $response->setPublic();
        $response->setETag(md5($content));
        $response->isNotModified($request);
     
        return $response;
    })
    ->bind('la-table');
     
     
     
     
    /**
     * Séjourner
     */
    $app->get('/séjourner', function(Request $request) use ($app) {
     
     
        $content = $app['twig']->render('Default/sejourner.html.twig');
     
        $response = new Response();
        $response->setContent($content);
     
        $response->setPublic();
        $response->setETag(md5($content));
        $response->isNotModified($request);
     
        return $response;
    })
    ->bind('sejourner');
     
     
    /**
     * Accès
     */
    $app->get('/accès', function(Request $request) use ($app) {
     
     
        $content = $app['twig']->render('Default/acces.html.twig');
     
        $response = new Response();
        $response->setContent($content);
     
        $response->setPublic();
        $response->setETag(md5($content));
        $response->isNotModified($request);
     
        return $response;
    })
    ->bind('acces');
    Par ailleurs, je n'ai pas accès aux logs d'apache...

  5. #5
    Membre extrêmement actif
    Avatar de dukoid
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2012
    Messages
    2 100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 2 100
    Par défaut
    et aux logs Symfony ? .../log/prod/...

  6. #6
    Membre éclairé Avatar de elvan49
    Profil pro
    Développeur Web
    Inscrit en
    Octobre 2006
    Messages
    274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Octobre 2006
    Messages : 274
    Par défaut logs
    Voici les deux dernières lignes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    [2016-07-12 10:51:25] myapp.ERROR: Symfony\Component\HttpKernel\Exception\NotFoundHttpException: No route found for "GET /" (uncaught exception) at /homepages/37/d593205132/htdocs/hotel-restaurant-carrion.fr/mobile/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/EventListener/RouterListener.php line 116 {"exception":"[object] (Symfony\\Component\\HttpKernel\\Exception\\NotFoundHttpException: No route found for \"GET /\" at /homepages/37/d593205132/htdocs/hotel-restaurant-carrion.fr/mobile/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/EventListener/RouterListener.php:116, Symfony\\Component\\Routing\\Exception\\ResourceNotFoundException:  at /homepages/37/d593205132/htdocs/hotel-restaurant-carrion.fr/mobile/vendor/symfony/routing/Symfony/Component/Routing/Matcher/UrlMatcher.php:91)"} []
    [2016-11-17 15:32:44] myapp.CRITICAL: Twig_Error_Loader: Template "" is not defined (). (uncaught exception) at /homepages/37/d593205132/htdocs/hotel-restaurant-carrion.fr/mobile/vendor/twig/twig/lib/Twig/Loader/Chain.php line 116 {"exception":"[object] (Twig_Error_Loader: Template \"\" is not defined (). at /homepages/37/d593205132/htdocs/hotel-restaurant-carrion.fr/mobile/vendor/twig/twig/lib/Twig/Loader/Chain.php:116)"} []

  7. #7
    Membre extrêmement actif
    Avatar de dukoid
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2012
    Messages
    2 100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 2 100
    Par défaut
    No route found for "GET /" (uncaught exception)
    c'est pourtant clair, il ne trouve pas la route "/" et il pointe vers "/"
    soit parceque une action d'un controller renvoi vers "/" alors qu'il ne le devrait pas... peut être !

    soit il n'y a pas de route défini comme ici :

    routing.yml
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    welcome:
        pattern:  /
        defaults: { _controller: YourbundlenameMainBundle:Default:index }

  8. #8
    Membre éclairé Avatar de elvan49
    Profil pro
    Développeur Web
    Inscrit en
    Octobre 2006
    Messages
    274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Octobre 2006
    Messages : 274
    Par défaut
    Merci de ta patience Dukoid
    Je sais bien qu'il ne trouve pas...
    Je le redis, je ne trouve nulle part le fichier attendu routing.yml
    Je te mets le DefaultController.php en cause (le seul qu'il y a donc on peut pas se tromper)
    J'ai procédé à un test
    J'ai modifié la ligne 29 pour la-table en remplaçant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $app->get('la-table', ...
    par J'ai mis en commentaire le traitement de la homepage ligne 11 à 24
    Le controller trouve bien et affiche la vue la-table.html.twig
    Est-ce que ça ne serait pas plutôt un problème de rewrite ?

    DefaultController.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
     
     
    use Symfony\Component\HttpFoundation\Request;
    use Symfony\Component\HttpFoundation\Response;
     
     
     
    /**
     * Homepage
     *
    $app->get('/', function(Request $request) use ($app) {
        
        $content = $app['twig']->render('Default/home.html.twig');
        
        $response = new Response();
        $response->setContent($content);
        
        $response->setPublic();
        $response->setETag(md5($content));
        $response->isNotModified($request);
        
        return $response;
    })
    ->bind('homepage'); */
     
    /**
     * La Table
     */
    $app->get('/', function(Request $request) use ($app) {
     
     
        $content = $app['twig']->render('Default/la-table.html.twig');
     
        $response = new Response();
        $response->setContent($content);
     
        $response->setPublic();
        $response->setETag(md5($content));
        $response->isNotModified($request);
     
        return $response;
    })
    ->bind('la-table');
     
     
    /**
     * Séjourner
     */
    $app->get('/séjourner', function(Request $request) use ($app) {
     
     
        $content = $app['twig']->render('Default/sejourner.html.twig');
     
        $response = new Response();
        $response->setContent($content);
     
        $response->setPublic();
        $response->setETag(md5($content));
        $response->isNotModified($request);
     
        return $response;
    })
    ->bind('sejourner');
     
    /**
     * Accès
     */
    $app->get('/accès', function(Request $request) use ($app) {
     
     
        $content = $app['twig']->render('Default/acces.html.twig');
     
        $response = new Response();
        $response->setContent($content);
     
        $response->setPublic();
        $response->setETag(md5($content));
        $response->isNotModified($request);
     
        return $response;
    })
    ->bind('acces');

  9. #9
    Membre éclairé Avatar de elvan49
    Profil pro
    Développeur Web
    Inscrit en
    Octobre 2006
    Messages
    274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Octobre 2006
    Messages : 274
    Par défaut
    Pour le fichier routing.yml
    j'ai regardé d'autres configurations
    il faudrait que j'ajoute les dossiers /app/config/ pour y créer le fichier routing.yml

    En fait plus je regarde plus j'ai l'impression qu'il manque plein de fichiers dans l'arborescence ou que c'est un "fork"
    Il n'y a pas un seul fichier .yml !!!

  10. #10
    Membre extrêmement actif
    Avatar de dukoid
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2012
    Messages
    2 100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 2 100
    Par défaut
    je ne connais pas la syntaxe que tu utilises :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    /**
     * Homepage
     *
    $app->get('/', function(Request $request) use ($app) {
    c'est pas le framework laravel par hasard ? (parceque ça ne ressemble pas a du Symfony )
    en effet, laravel est basé sur Symfony d'ou peut être la confusion.



    sinon, je fais avec les annotations dans le controller (en Symfony 2 et 3) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
       /**
         * @Route("/blog/{page}", name="blog_list", requirements={"page": "\d+"})
         */
        public function listAction($page)
        {
            // ...
        }
    http://symfony.com/doc/current/routing.html



    avec le fichier routing.yml c'est un peu moins bien je trouve. chacun fait comme il aime

  11. #11
    Membre éclairé Avatar de elvan49
    Profil pro
    Développeur Web
    Inscrit en
    Octobre 2006
    Messages
    274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Octobre 2006
    Messages : 274
    Par défaut
    Les logs en fait ne relève aucune erreur sur ces routes qui n'aboutissent pas.
    Les timings ne correspondent pas aux tests.
    Depuis j'ai effacé les logs pour voir ce qui apparaissait... J'ai volontairement mis des erreurs dans le layout.html.twig
    et dans les controllers. ces erreurs apparaissent car symfony plante.
    Mais si je remet tout en place tel que c'était, il n'y a plus d'erreur.
    Je persiste à penser que le REWRITE d'apache met le souc.

  12. #12
    Membre éclairé Avatar de elvan49
    Profil pro
    Développeur Web
    Inscrit en
    Octobre 2006
    Messages
    274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Octobre 2006
    Messages : 274
    Par défaut .htaccess et rewriteRule
    J'ai bien fait d'insister sur le module rewrite...
    En effet il n'y avait pas de règle définie. Et on accédait pas à la page d'erreur 404 custom avec error.html.twig
    J'ai rajouté dans le .htaccess
    après RewriteEngine On
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    RewriteBase /
    RewriteRule ^([[:alpha:]]*)(-)?([[:alpha:]]*)$ index.php [L]
    Et tout est rentré dans l'ordre !
    Merci de ta patience Dukoid (j'en ai largement profité pour regarder tes tutos (et je vais y retourner )

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [1.x] Twig sans Symfony et page d'erreur (404)
    Par lapaupiette dans le forum Symfony
    Réponses: 2
    Dernier message: 23/12/2011, 11h19
  2. [Configuration] erreur 404, url demandée ?
    Par mikyfpc dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 9
    Dernier message: 08/10/2004, 09h37
  3. [Apache-SSL] Erreur 404
    Par GLDavid dans le forum Apache
    Réponses: 2
    Dernier message: 08/09/2004, 17h12
  4. [struts][tomcat]erreur 404 suite à un forward
    Par minique dans le forum Struts 1
    Réponses: 3
    Dernier message: 06/09/2004, 10h11
  5. Check Url pour savoir si erreur 404 ou si le site existe
    Par Clément[Delphi] dans le forum Composants VCL
    Réponses: 2
    Dernier message: 07/08/2002, 13h49

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo