[英]Django - AngularJs Project Structure
在研究了幾天之后,我還沒有決定使用Django的AngularJ的最佳結構是什么.GitHub上有許多項目以及使用Django項目的靜態文件夾中的角度文件在網上提供了教程.Angular 1中主要遵循以下結構Django的。
Project Name
app
project name
templates
static
angular_app
app1
app1.component.js
app1.module.js
app.js
angular_templates (static templates for rendering in routes)
manage.py
在Angular 2中,我們必須使用節點服務器,並且據我所知,與經驗豐富的angular開發人員(他們也使用其他后端技術)一起使用時,他們使用的是這種結構
AngularJs Project
app1
app1.component.js
app1.module.js
angular_templates (static templates for rendering in routes)
app.js
Django Project ( or any other backend project)
app
project name
templates
static
manage.py
該項目結構的優勢:通過替換后端項目文件夾,我們可以使用任何其他后端技術。 只有API依賴於后端項目。前端完全獨立於后端。
因此,問題是Django-Angular項目的最佳結構是什么? 如果第二個選項很好,我們是否必須在同一個域中分別部署angular和Django代碼? 如果是,該怎么辦?
如果需要,可以將兩者結合起來。 我對Rails后端做了類似的事情,它對我很有用。 (請注意,我對Django不熟悉,但我認為適用相同的邏輯。)
假設Django項目中的static文件夾將在其中提供任何內容作為靜態內容,我不建議在該文件夾中包含Angular項目。 相反,讓您的Angular文件夾成為靜態文件夾的同級文件夾。 但是,配置Angular項目以將其最終輸出構建到Django靜態文件夾中。
因此,您的項目如下所示:
Django Project ( or any other backend project)
app
project name
templates
static (receives minified output from AngularJS project)
manage.py
AngularJs Project
app1
app1.component.js
app1.module.js
angular_templates (static templates for rendering in routes)
app.js
這樣做有一些好處:1.項目或多或少是分開的-在進行Angular工作時,您在AngularJS文件夾中工作,否則在其他文件夾中進行Django工作
部署更加簡單-構建AngularJS構件(js,css,index.html)並檢入它們。然后部署Django文件夾將部署所有內容
您仍然可以從AngularJS生態系統的工具中受益,因為就所有意圖而言,它仍位於其自己的文件夾中且相互隔離。
一切都在一個倉庫中,這可以使源管理更加容易。
有幾個缺點-您正在檢查AngularJS構建工件,並且AngularJS的更改與服務器端的更改混合在一起,但是我發現,除非服務器端和客戶端團隊完全獨立,否則它就沒有了。被證明是一個問題。
最佳實踐 :
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.