Partage
  • Partager sur Facebook
  • Partager sur Twitter

symfony - projet déployé dans un sous-dossier

/mon_projet/ vers /mon_projet/public

    15 septembre 2022 à 9:23:45

    Bonjour à tous,

    J'ai un petit souci sur mes projets symfony.
    Dans mon entreprise, un serveur web partage différentes applications web développées par différents développeurs, à différents moments.

    Pour le projet que je développe, j'ai donc un dossier /mon_projet/ accessible à l'adresse http://site_intranet/mon_projet/

    Le problème est que si j'accède à mon application développée avec Symfony, via cette url, j'ai la liste des dossiers qui s'affichent.
    Pour lance le projet, il est nécessaire de se rendre à l'adresse http://site_intranet/mon_projet/public/

    Ainsi, j'ai tenté de faire une redirection avec un fichier .htaccess à la racine, mais je bloque un peu.

    J'ai donc créé le fichier contenant les éléments suivants :

    RewriteEngine On
    RewriteBase /mon_projet/
      
    RewriteCond %{THE_REQUEST} /public/([^\s?]*) [NC]
    RewriteRule ^ %1 [L,NE,R=302]
      
    RewriteRule ^((?!public/).*)$ public/$1 [L,NC]

    Mais quand j'accède à l'url http://site_intranet/mon_projet/, Symfony me signale une erreur

    No route found for "GET http://site_intranet/mon_projet/

    Avec l'erreur de routing :

    Symfony\Component\Routing\Exception\
    ResourceNotFoundException No routes found for "/mon_projet".

    Forcément, mon controlleur attends "/" et pas "/mon_projet/".

    class AccueilController extends AbstractController
    {
        /**
         * @Route("/", name="accueil")
         */
        public function index(): Response
        {
            return $this->render('accueil/index.html.twig', [
                'controller_name' => 'AccueilController',
            ]);
        }
    }

    Ca fait des semaines que je remue google, sans succès...

    Quelqu'un a une idée ?

    -
    Edité par Aklain52 22 septembre 2022 à 16:39:50

    • Partager sur Facebook
    • Partager sur Twitter

    Apprendre est ma plus grande passion.

      16 septembre 2022 à 12:15:38

      Salut

      Plutôt que de vouloir mettre un fichier .htaccess au niveau de la racine du projet, ne pourrais-tu pas faire en sorte que la racine web du projet soit le dossier /public, justement ?

      -
      Edité par Ymox 16 septembre 2022 à 12:15:53

      • Partager sur Facebook
      • Partager sur Twitter
        19 septembre 2022 à 9:06:06

        @Ymox

        C'est juste impossible.

        La racine web contient déjà notre site intranet.
        Les projets/applis sont contenus dans des sous-dossiers.

        Mon administrateur m'impose la structure suivante :

        /www/mon_projet/ accessible à l'adresse http://site_intranet/mon_projet/

        • Partager sur Facebook
        • Partager sur Twitter

        Apprendre est ma plus grande passion.

          22 septembre 2022 à 16:41:55

          En fouillant, je me suis rendue compte de webpack.config.json est évoqué le déploiement dans un sous dossier.

          Au niveau de :

          setManifestKeyPrefix

          J'ai tenté plusieurs bricoles, mais ça ne semble rien changer...

          Que pensez-vous de ma configuration ?

          Encore
          // directory where compiled assets will be stored
          .setOutputPath('public/build/')
          // public path used by the web server to access the output path
          .setPublicPath('/mon_projet/public/build')
          
          // only needed for CDN's or sub-directory deploy
          //.setManifestKeyPrefix('build/')



          -
          Edité par Aklain52 22 septembre 2022 à 16:43:09

          • Partager sur Facebook
          • Partager sur Twitter

          Apprendre est ma plus grande passion.

            22 septembre 2022 à 22:23:37

            Et ton administrateur n'aurait pas moyen de configurer pour que l'adresse http://site_intranet/mon_projet/ pointe dans www/mon_projet/public ?

            Je ne pourrai pas trop t'aider sur ce genre de configuration, désolé.

            • Partager sur Facebook
            • Partager sur Twitter
              23 septembre 2022 à 15:47:54

              Malheureusement non...

              Il est obtus là-dessus et considère que si je ne peux pas gérer cette situation, c'est uniquement ma faute et que c'est moi qui aie mal codé.

              J'avoue que vue le temps que je passe à régler des problèmes avec Symfony, j'envisage de plus en plus d'abandonner ce framework.

              • Partager sur Facebook
              • Partager sur Twitter

              Apprendre est ma plus grande passion.

                23 septembre 2022 à 22:51:11

                S'il ne sait pas te proposer une autre solution ou a minima t'aider à en trouver une avec ce qu'il souhaite, je trouve aussi un peu dommage. Mais si parce que quelqu'un d'autre ne t'aide pas dans sa partie du travail tu penses vouloir changer de framework, sache que bien d'autres actuels fonctionnent de manière similaire au niveau de la structure de dossiers.

                Sans garantie, essaie de mettre ceci à la racine de ton projet sur le serveur (donc pas dans /public, mais le dossier au-dessus), à tout hasard ? L'outil de présentation du code fait encore des siennes, enlève les ; après les < aux lignes 1 et 11.

                <IfModule mod_rewrite.c>
                    RewriteEngine On
                 
                    RewriteBase "/projet/"
                    RewriteCond %{THE_REQUEST} /public/([^\s?]*) [NC]
                    RewriteRule ^ %1 [L,NE,R=302]
                 
                    RewriteRule !\.(js|gif|JPG|JPEG|PNG|jpeg|jpg|png|webmanifest|webp|css|txt|svg|woff|woff2|ttf|map|ico)$ public/index.php [L]
                    RewriteCond %{REQUEST_URI} !^/public/
                    RewriteRule ^(.*)$ public/$1 [L]
                </IfModule>
                

                -
                Edité par Ymox 23 septembre 2022 à 22:59:43

                • Partager sur Facebook
                • Partager sur Twitter

                symfony - projet déployé dans un sous-dossier

                × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                • Editeur
                • Markdown