我有一個項目,我正在使用Angular2來使用我用Django-Rest-Framework構建的其餘API。目前,我必須使用django開發服務器(例如'python manage.py runserver')啓動django api,然後我必須使用'npm start'或cli'ng serve'來啓動angular 2服務器。有什麼辦法可以設置我的django項目來爲angular2項目提供服務嗎?如何從django的開發服務器提供角度2應用程序?
回答
我假設Django-Rest-Framework有一個選項用於提供靜態資產,對嗎?
如果是這樣,您可以配置角度cli以將其構建輸出生成到Django能夠提供的文件夾中。 ng build的輸出是一組靜態資產(js,css和index.html),可以由任何Web服務器提供服務。因此,如果您將.angular-cli.json中的outDir
選項更改爲指向您的Django安裝程序中的靜態資產文件夾,則只需運行單個文件夾即可獲得優勢。
這種方法有兩個主要缺點。首先,您現在必須積極地記住,每次更新角度項目時都要運行ng build,並希望看到新的更改 - 您將失去使用ng服務時發生的自動更新和重新加載。第二個缺點是ng build比修改後更新要慢得多(因爲前者必須寫入文件系統,而後者只是將文件保存在內存中)。
對於Angular文件的每次保存,都有記住要做ng serve
的方法,但要麼需要使用gulp或grunt或其他任務運行程序來監視文件更改並運行命令,要麼使用無論Django在自動文件監視和重新加載方面的功能如何(以及我不熟悉Django,但Rails有幫助這些類型的設置的guard gem
)。
我希望有幫助。
(老實說,我在Rails上做了類似的設置,最後刪除了它,並且只是並排運行兩臺服務器 - 這樣做的壓力較小)。
嘿Snorkpete感謝您的回覆。您是否熟悉多租戶Web應用程序?如果你願意,可以在某個時候選擇你的大腦。 – FlashBanistan
這意味着每個用戶/賬戶都有自己的數據庫副本嗎? – snorkpete
是的,有點類似於客戶在我的域名上註冊並且他們收到用戶可以註冊的子域名。基本上是共享數據庫/獨立模式或SaaS方法。 – FlashBanistan
- 將index.html文件放在
templates/<project-name>
目錄中。
使用這一功能來服務的index.html這是切入點的角度
def index(request):
return render(request, template_name='<project-name>/index.html')
把所有的角靜態文件的
STATICFILES_DIRS
,讓他們可以通過collectstatic
命令收集。使用
{{ STATIC_URL }}
在靜態文件中的index.html路徑來訪問它們
現在,當您要訪問的索引功能,您的角度應用程序將得到服務。
- 1. Django的OpenID服務器/提供程序
- 2. 如何使用grunt爲角應用程序提供服務?
- 3. 如何從c#服務器應用程序提供JavaScript文件?
- 4. Apache提供的角度應用程序
- 5. 如何在django開發服務器上提供靜態文件
- 6. 如何使用spring-oauth2服務器連接角度2應用程序?
- 7. 從Apache服務器不提供Angular2應用程序
- 8. 從網絡服務器提供Silverlight應用程序
- 9. 如何等待從服務角度2
- 10. 如何從另一個角度爲2的應用程序加載一個角度爲2的應用程序?
- 11. 角度實時應用程序開發
- 12. Django - 開發服務器不提供管理靜態文件
- 13. Django 1.4在開發服務器上提供MEDIA_URL和STATIC_URL文件
- 14. 如何使用Google Analytics API開發服務器應用程序?
- 15. 在django的另一臺服務器上提供遠程服務器和應用程序中的媒體文件
- 16. 如何從服務器的角度
- 17. 角2自定義HTTP服務引發錯誤:沒有提供程序XHRBackend
- 18. 如何爲apns iphone應用程序創建php提供程序服務器?
- 19. 如何將角度2應用程序發佈到Azure Web應用程序中?
- 20. 如何開發多服務器Web應用程序?
- 21. 如何使用應用程序服務提供商爲此
- 22. 如何使用Mongrel2爲WSGI Python應用程序提供服務?
- 23. 如何從Web服務器提供JSON?
- 24. 將Rails應用程序從開發服務器傳遞到生產服務器
- 25. 如何配置nginx來爲Django應用程序和Wordpress網站提供服務?
- 26. 如何設置Django開發服務器
- 27. 角度發展和使用服務運行應用程序
- 28. 如何通過角度發送數據到服務器2
- 29. 應用程序服務器提供的罐子是什麼?
- 30. tomcat服務器提供運行應用程序的問題
我在這裏回答了它:http://stackoverflow.com/a/43135009/6555866 適合我。 – giaco