经过研究,我还没有决定使用Django的AngularJs的最佳结构.GitHub上有很多可用的项目,并且使用Django项目静态文件夹中的角度文件在网上进行教程。下面的结构主要是与Django的角度1。
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中,我们必须使用节点服务器,并且大多数情况下,我看到经验丰富的角度开发人员也使用其他后端技术,他们使用此结构
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项目的最佳结构是什么?如果第二个选项是好的,我们必须部署我们的角度 和Django代码分别在同一个域上?如果是的话怎么做?
答案 0 :(得分:2)
如果您愿意,可以将两者结合起来。我使用Rails后端做了类似的事情,它很适合我。 (请注意,我不熟悉Django,但我认为适用相同的逻辑。)
假设Django项目中的静态文件夹将作为静态内容提供任何内容,我不建议将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更改与服务器端更改混合在一起,但我发现除非服务器端和客户端团队完全独立,它没有被证明是一个问题。
答案 1 :(得分:0)