Il semble que vous cherchiez à réduire progressivement l'utilisation du routage de CodeIgniter (CI) au fur et à mesure que votre application angulaire grandit. Ce n'est pas difficile, mais cela demande beaucoup de détails. La méthode qui fonctionnera dépend de la structure de votre projet. Note : J'ai supprimé index.php des URL de Code Igniter, donc les chemins ci-dessous peuvent être différents de ceux par défaut.
1) CodeIgniter installé en racine
Si CI est installé à la racine de votre serveur, vous pouvez créer un dossier dans CI (par exemple, j'ai un dossier "ng"). Votre projet ressemblera à ceci :
/controllers
/models
/ng
(etc)
/index.php (code igniter index file)
placer un fichier .htaccess dans /ng
avec les éléments suivants :
Order allow, deny
Allow from all
Cela permet aux fichiers contenus dans /ng
pour y accéder directement, plutôt que de renvoyer ces demandes par le système de routage de CI. Par exemple, vous pouvez maintenant charger ce document directement : example.com/ng/partials/angular-view.html
La page web principale sera toujours créée par CodeIgniter, mais elle peut désormais inclure des actifs Angular, tels que des vues partielles, etc. Finalement, vous pouvez remplacer la plupart de ce que fait CodeIgniter en renvoyant une simple page, et en demandant à Angular de charger des vues partielles à partir de /ng
comme il a été conçu.
Cette méthode est intéressante car CodeIgniter peut contrôler si cette page initiale est chargée (via un code d'authentification de l'utilisateur dans votre contrôleur CI). Si l'utilisateur n'est pas connecté, il est redirigé et ne voit jamais l'application Angular.
2) CodeIgniter dans le répertoire
Si CI est installé dans un répertoire, tel que example.com/myapp/(code igniter)
vous pouvez simplement créer un répertoire à côté, example.com/myappNg/
/myapp/
/myapp/controllers/
/myapp/models/
/myapp/(etc)
/myapp/index.php (code igniter index file)
/myappNg/
/myappNg/partials/
/myappNg/js/
/myappNg/(etc)
Maintenant, dans votre application Angular, vous pouvez demander des ressources à CI en rendant les chemins relatifs au domaine Root, plutôt que relatifs à l'application Angular. Par exemple, dans Angular, vous ne demanderez plus une vue partielle à partir du dossier Angular partials/angular-view.html
Il est préférable de demander des vues à CI /myapp/someResource
. Notez que le premier /
. "someResource" peut renvoyer un document html, ou JSON ou tout ce que vous faites avec Code Igniter en premier lieu.
Vous pouvez éventuellement remplacer le nombre de chemins qui font référence à /myapp/
. Une fois que vous n'utilisez plus CI pour quoi que ce soit, vous pouvez simplement placer votre index.html Angular dans /myapp/
et il continuera à faire référence à vos chemins d'accès à /myappNg/
.
TL;DR Rendez votre application Angular entièrement disponible et découplez-la de CodeIgniter. Utilisez progressivement des vues partielles Angular et d'autres sources JSON au lieu de faire des liens vers des pages CodeIgniter. Finalement, remplacez votre point de terminaison CodeIgniter par un fichier HTML qui démarre Angular.