8768 sujets

Développement web côté serveur, CMS

Salut,
Je rencontre un problème avec codeigniter. Je développe un back-office.
J'ai mis tous les contrôleurs liés à cette partie dans un sous-dossier admin.
Dans le fichier route.php, j'ai ajouté cette ligne :
$route['admin'] = "admin/authentification";

=> Cela permet de diriger vers le contrôleur authentification.
J'appelle une vue 'login.php' qui est un formulaire de connexion pour se connecter.
J'utilise require js pour la gestion de mes scripts js.

Dans le footer j'ai inséré une balise script :
<script src="assets/librairies/requirejs/require.js'"></script>

=> Tout marchait bien jusqu'à aujourd'hui. Depuis maintenant 6 heures, j'ai des messages d'erreurs.
Si j'apelle l'url suivante :
localhost/Site/BackOffice/admin/authentification/
J'obtiens l'erreur suivante :
"NetworkError: 404 Not Found - localhost/Site/BackOffice/admin/authentification/assets/librairies/requirejs/require.js'"
Smiley bawling Smiley bawling Smiley bawling

Je ne comprends pas pourquoi il y a le nom du contrôleur et de la méthode.
De plus même si je mets base_url pour le href dans la balise script, tous les fichiers chargés avec requirejs donnent l'erreur suivante :
"NetworkError: 404 Not Found - localhost/Site/BackOffice/admin/authentification/assets/js/dev/[nom-du-modue].js'"

Dans ma page login, j'ai :
<form class="form-login" role="form" action="admin/authentification/identification" method="post">

Tout fonctionnait aussi mais maitenant, j'ai cette erreur :
404 not found avec comme url : localhost/Site/BackOffice/V3/admin/admin/authentification/identification

Est-ce que vous auriez une idée du problème ? Je ne comprends pas pourquoi le contrôleur et la méthode se sont rajoutés ... Tout marchait bien et je ne vois pas quelle modification j'ai fait pour obtenir ça. Je suis revenus en arrière, chercher des solutions sur internet, rien n'y fait.

En espérant que quelqu'un puisse m'aider.
Merci à tous.
Modifié par renard13 (03 Feb 2016 - 00:26)
Bonjour,
Je ne sais pas si ça résoudra ton problème, vu que ça pourrait aussi venir de ton htaccess, mais tu devrais essayer de travailler avec des urls absolues:
<script src="<?php echo base_url("assets/librairies/requirejs/require.js"); ?>"></script>

Modifié par loicbcn (03 Feb 2016 - 10:39)
Salut loicbcn,
Merci pour ta réponse. Hier soir après des heures a essayé de comprendre le pourquoi, j'ai essayé de mettre base_url(). Cela permet de charger le script requirejs mais après tous les scripts qu'il charge se font via le chemin suivant (ex : si on appelle le contrôleur authentification) : localhost/Site/BackOffice/V3/admin/admin/authentification
Du coup j'ai reconfiguré le baseUrl de require avec echo base_url et les fichiers se sont chargés.
Mais je ne comprends pas pourquoi je dois faire ça maintenant alors que tout marchait très bien avant sans avoir à ajouter base_url.
Trouver une solution sans comprendre le problème ou le pourquoi c'est très énervant Smiley fache

Si quelqu'un a une explication je suis preneur ?

Mon fichier .htaccess :


#   Empêche la visualisation de l'arborescence, n'a rien à voir avec le masquage du « index.php ».
Options -Indexes
#   Active le module de réécriture d'URL.
RewriteEngine on
#   Toutes les URL qui ne correspondent pas à ces masques sont réécrites.
RewriteCond $1 !^(index\.php|assets/|robots\.txt)
#   Toutes les autres URL vont être redirigées vers le fichier index.php.
RewriteRule ^(.*)$ index.php/$1 [L]