在Ember CLI之前,我用来在Django项目中创建一个index.html页面,再加上App.js文件,所有这些文件似乎都运行得很好.
现在Ember正在使用CLI,似乎没有简单的方法可以在Django应用程序中集成Ember CLI项目.
所以我读到人们建议使用Ember CLI开发前端,Django开发REST API.但是部署并不容易,因为您需要复制Django静态文件夹下的Ember dist文件夹,并将Ember app下的所有静态资源URL更改为指向Django静态路径.
现在Ember正在使用CLI,似乎没有简单的方法可以在Django应用程序中集成Ember CLI项目.
所以我读到人们建议使用Ember CLI开发前端,Django开发REST API.但是部署并不容易,因为您需要复制Django静态文件夹下的Ember dist文件夹,并将Ember app下的所有静态资源URL更改为指向Django静态路径.
因此,似乎没有简单的方法将两者集成到一个单一的开发过程中.
你们有没有关于如何整合开发和部署过程的建议?
谢谢.
解决方法
对于这样的项目,您应该为服务器应用程序和客户端应用程序使用单独的存储库.
考虑一个包含4个代码库,1个服务器和3个客户端的项目:
> myproject(用Python编写的Django应用程序,为客户端提供API)
> myproject-web(用JavaScript编写的Ember.js Web客户端)
> myproject-ios(用Swift编写的iOS客户端应用程序)
> myproject-android(用Java编写的Android客户端应用程序)
核心应用程序将部署到能够托管Python应用程序的服务器(例如uWSGI).
因为Ember.js项目最终是一个静态资源,所以您可以从几乎任何地方(例如Nginx)提供它,并将其指向托管Django项目的单独API服务器(例如https://app.myproject.com/api/).请参阅有关配置ember-django-adapter以使用自定义API主机的文档:http://dustinfarris.com/ember-django-adapter/configuring/
iOS当然会部署到Apple App Store,Android项目将部署到Google Play.
每个存储库都是一个单独的代码库,具有不同的需求和部署策略 – 这就是最好将它们分开的原因,因此您可以考虑它们并单独使用它们.仅仅因为Django可以处理静态资产并不意味着你应该依赖它 – 试图在Django项目中托管Ember.js项目(或任何其他JS框架项目)只会让事情过于复杂.希望有所帮助.