将Ember CLI与Django应用程序集成

2024-09-30 18:18:29 发布

您现在位置:Python中文网/ 问答频道 /正文

在Ember CLI之前,我使用索引.htmlDjango项目中的页面,加上应用程序js文件和所有的工作似乎都很好。 既然Ember正在使用CLI,那么在Django应用程序中集成Ember CLI项目似乎并不是一个简单的方法。 所以我读到人们推荐使用embercli开发前端,使用Django开发restapi。但是部署并不容易,因为您需要复制Django静态文件夹下的Ember dist文件夹,并更改Ember app下的所有静态资产url以指向Django静态路径。在

因此,似乎没有一种简单的方法可以将这两者集成到一个单独的开发过程中。在

你们对如何集成开发和部署过程有什么建议吗?在

泰铢。在


Tags: 文件项目django方法文件夹应用程序cli过程
2条回答

对于这样的项目,您应该为服务器应用程序和客户端应用程序使用单独的存储库。在

考虑一个有4个代码库、1个服务器和3个客户端的项目:

  • myproject(一个用Python编写的Django应用程序,为客户机提供API)
  • 我的项目网站余烬用JavaScript编写的web客户端)
  • myproject ios(一个用Swift编写的ios客户端应用程序)
  • myproject android(一个用Java编写的android客户端应用程序)

核心应用程序将被部署到能够托管Python应用程序的服务器上(例如uWSGI)。在

因为余烬项目最终是一个静态资源,您可以从几乎任何地方(例如NGINX)为其提供服务,并将其指向托管Django项目的独立API服务器(例如https://app.myproject.com/api/)。请参阅有关配置ember django适配器以使用自定义API主机的文档:http://dustinfarris.com/ember-django-adapter/configuring/

当然,iOS将被部署到Apple应用商店,Android项目也将被部署到googleplay上。在

每个存储库都是一个独立的代码库,具有不同的需求和部署策略,这就是为什么最好将它们分开,这样您就可以单独考虑它们并与它们一起工作。仅仅因为Django可以处理静态资产并不意味着您应该依赖它来托管余烬Django项目中的项目(或任何其他JS框架项目)都过于复杂。希望有帮助。在

我目前正在实现一个由Django提供服务的Ember CLI应用程序。在

以下是我遵循的步骤:

在Django:

  1. 在django项目中创建一个子项目(即:ember
  2. 安装django-redis-views,它将为您的索引.html来自redis。在
  3. 在AWS(或其他存储产品)上创建一个s3bucket+CDN来存储您的资产

余烬:

  1. 安装ember-deploy-redis&;ember-deploy-s3
  2. 将凭据添加到配置部署在你的ember cli中纠正指纹-构建.js在
  3. 部署余烬

有用链接:

相关问题 更多 >