需求:如今一個應用是先後端開發分離,前端使用angular,後端使用 asp.net core 提供api ,開發完成後,如今須要把兩個程序部署在同一個網站下,應該怎麼處理?前端
首先能夠參考微軟的官方文檔 Use the Angular project template with ASP.NET Core後端
.net core 對先後端的部署仍是很友好的,主要處理步驟以下:api
1.配置服務 在startup中的 ConfigureServices()中聲明mvc
services.AddSpaStaticFiles(configuration => { //angular文件所在文件夾 configuration.RootPath = "client"; });
2. 調用服務,在startup中的 Configure() 方法中聲明app
app.UseStaticFiles(); // spa files app.UseSpaStaticFiles(); app.UseMvc(routes => { routes.MapRoute( name: "default", template: "{controller}/{action=Index}"); }); //使用服務 app.UseSpa(f => { //f.Options.SourcePath = @"\client"; if (env.IsDevelopment()) {
// 本地調試用 f.UseProxyToSpaDevelopmentServer("http://localhost:4200"); } });
這裏要注意, app.usespa要放在 app.usemvc後面,否者前端是調不到後端api的。asp.net
3 部署: ide
先後端分別發佈出來,在iis中把後端部署好,同時,在後端的文件夾中創建一個 「client」 文件夾(第一步中的配置),把前端發佈好的文件放置到該目錄中就能夠了。visual-studio