2016-10-26 4 views
1

に、私は次のような構造を持っているウェブサイトを開発している -nginxのとの角度ガルプは、AWS上のUbuntu

  • Djangoは、要求された内容に応じてフロントエンドにJSONを提供するバックエンドのためのアプリを休みます。
  • これらのapisを要求するフロントエンド用のAngularJSアプリ。

は今バックエンドとフロントエンドの両方がどのような方法で結合されていないと、ローカルに私はmanage.pyのrunserverバックエンドと一息フロントエンドを提供するために使用されます。

私は今開発に移りつつあり、djangoを実行してapi要求に対応するためにawginでnginxを設定しました。これは問題なく動作しています。サーブは何一息

しかし、フロントエンドのために、私は

  • AS-混乱していますが、それはすべてのSCSSとの依存関係を注入し、アプリを起動しません。どのように私はnginx(基本的にギャルのサーブ)を使用してアプリを起動するだろうか?

同じインスタンスでnginxでどのようにdjangoとangular runnungを取得できますか? 誰かがいくつかの例を投稿してもいいと思います。

答えて

0

あなたができることは、ビューを通してDjangoを基本テンプレートとして提供することです。

この基本テンプレートには、角型の主要アプリが含まれているはずです。また、この基本テンプレートは、あなたのジャンゴに常駐することに留意してくださいなどのライブラリや、あなたのコントローラー/サービス/ディレクティブ

<!DOCTYPE html> 
 
<html lang="en" ng-app="angularApp"> 
 

 
{% block head %} 
 
<head> 
 

 
    
 

 
    {% block angular_requirements %} 
 
     <script type="text/javascript" src="{{ STATIC_URL }}node_modules/angular/angular.js"></script> 
 
     <script type="text/javascript" src="{{ STATIC_URL }}node_modules/angular-ui-router/release/angular-ui-router.js"></script> 
 
     <script type="text/javascript" src="{{ STATIC_URL }}node_modules/checklist-model/checklist-model.js"></script>   
 
     <script type="text/javascript" src="{{ STATIC_URL }}angular_apps/dashboard/app.js"></script> 
 
     <script type="text/javascript" src="{{ STATIC_URL }}angular_apps/controllers/dealController.js"></script> 
 
     <script type="text/javascript" src="{{ STATIC_URL }}angular_apps/controllers/catController.js"></script> 
 
     <script type="text/javascript" src="{{ STATIC_URL }}angular_apps/dashboard/controllers.js"></script> 
 
     <script type="text/javascript" src="{{ STATIC_URL }}angular_apps/dashboard/services.js"></script> 
 
     <script type="text/javascript" src="{{ STATIC_URL }}angular_apps/dashboard/utils.js"></script> 
 
     <script type="text/javascript" src="{{ STATIC_URL }}angular_apps/dashboard/filters.js"></script> 
 
    {% endblock angular_requirements %} 
 

 

 
</head> 
 
{% endblock head %} 
 

 
<body> 
 

 
    
 

 
</body> 
 

 
</html>

など、すべての角度依存性が含まれますと、フォルダとすべてのテンプレートアングルファイルは静的フォルダに置かれます。

ここで、基本テンプレートはDjangoビューで提供され、静的ファイルはnGinx経由で提供されます。

あなたはnginxのconfの中で静的なルールを追加する必要があります:

location /static/ { 
     alias <path-to-collect-static-folder>; 
    } 

だからあなたのフォルダ構造は、このような何か見ることができます:ここで

Django-app/ 
    app/ 
    templates/ 
     base.html 
    static/ 
     node_modules/ # will contain all libraries 
     angular_app/ 
      app.js 
      controllers.js 

は、Djangoのバックエンドを持つプロジェクトであります角度フロントエンド: https://github.com/aliasav/coder-submissions

+0

私は何百ものコントローラ、サービス、および指令を持っていますが、より良い方法がありますか? – ThatBird

+0

あなたがそのコントローラをたくさん持っている場合は、ページごとに異なるアプリを持つことができます。しかし、これはかなり長い間使用してきた適度なサイズのSPAのためのテスト済みのアーキテクチャです。だから、ページの読み込み時間は少し高いかもしれませんが、それを減らす方法もあります。 – aliasav

+0

それらをすべてハードコードする必要はありませんか? – ThatBird

関連する問題