Angular アプリケーションが成長するにつれて、CodeIgniter (CI) ルーティングの使用を徐々に減らしたいと考えているようです。これは難しくありませんが、多くの詳細が必要です。どの方法が機能するかは、プロジェクトの構造によって異なります。注: Code Igniter の URL から index.php を削除したため、以下のパスはデフォルトとは異なる場合があります。
1) ルートにインストールされた CodeIgniter
CI がサーバーのルートにインストールされている場合は、CI 内にフォルダーを作成できます (たとえば、"ng" フォルダーがあります)。プロジェクトは次のようになります。
/controllers
/models
/ng
(etc)
/index.php (code igniter index file)
次のように .htaccess ファイルを配置/ng
します。
Order allow, deny
Allow from all
/ng
これにより、 CI のルーティング システムを介してそれらの要求を送り返すのではなく、内部のファイルに直接アクセスできます。たとえば、これを直接ロードできます。
example.com/ng/partials/angular-view.html
メイン Web ページは引き続き CodeIgniter によって作成されますが、部分ビューなどの Angular アセットを含めることができるようになりました。最終的には、単純なページを返すだけで CodeIgniter が行っていることのほとんどを置き換えることができ、Angular に部分ビューをロードさせることができます。/ng
それが設計されているように。
CodeIgniter は最初のページが読み込まれるかどうかを (CI コントローラーのユーザー認証コードを介して) 制御できるため、この方法は便利です。ユーザーがログインしていない場合、リダイレクトされ、Angular アプリは表示されません。
2) ディレクトリ内の CodeIgniter
CI がディレクトリにインストールされている場合、そのexample.com/myapp/(code igniter)
隣にディレクトリを作成するだけで、example.com/myappNg/
/myapp/
/myapp/controllers/
/myapp/models/
/myapp/(etc)
/myapp/index.php (code igniter index file)
/myappNg/
/myappNg/partials/
/myappNg/js/
/myappNg/(etc)
これで、Angular アプリケーションでは、Angular アプリに対してではなく、ドメイン ルートに対して相対的なパスを作成することで、CI からリソースを要求できます。たとえば、Angular では、Angular フォルダーから部分ビューをリクエストするのpartials/angular-view.html
ではなく、CI からビューをリクエストする必要があります/myapp/someResource
。先頭に注意してください/
。「someResource」は、html ドキュメント、JSON、または最初に Code Igniter で行っていることを返すことができます。
最終的に、参照するパスの数を置き換えることができます/myapp/
。CI を何にも使用しなくなったら、Angular の index.html を に配置するだけで、/myapp/
引き続き でパスを参照できます/myappNg/
。
TL;DR Angular アプリを完全に利用できるようにし、CodeIgniter から分離します。CodeIgniter ページにリンクする代わりに、Angular の部分ビューやその他の JSON ソースを使用する方向に徐々に移行します。最終的に、CodeIgniter エンドポイントを、Angular をブートストラップする HTML ファイルに置き換えます。