Skip to content

Commit

Permalink
[SPA] Introduces new approach for proxying the SPA templates (#31564)
Browse files Browse the repository at this point in the history
* A new package Microsoft.AspNetCore.SpaProxy has been added that is
  used by the templates to launch their development proxy via npm/yarn.
* The SPA development proxy for each CLI now is the frontend for the
  application and proxies the requests to the backend which is the
  ASP.NET Core application.
* At publish time the application assets are copied to the wwwroot.
* SpaServices.Extensions has been removed from the templates since it is
  no longer needed. MapFallbackToFile("index.html") handles unknown
  requests and serves the SPA entry point.
* The templates have been updated to keep using HTTPS with the SPA proxy
  configured to use the ASP.NET Core HTTPS development certificate via a
  new aspnetcore-https.js file that ships within the template.
* The configuration for angular has been updated with a proxy.conf.js
  file to proxy requests to the backend.
* The entry point for the application in development is now
  https://localhost:5002 when using https and http://localhost:5002
  otherwise.
  • Loading branch information
javiercn committed Apr 9, 2021
1 parent 5b3ba86 commit 6bc4b79
Show file tree
Hide file tree
Showing 53 changed files with 19,562 additions and 4,500 deletions.
94 changes: 54 additions & 40 deletions AspNetCore.sln
Original file line number Diff line number Diff line change
Expand Up @@ -405,10 +405,6 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ResponseCompression", "Resp
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.ResponseCompression", "src\Middleware\ResponseCompression\src\Microsoft.AspNetCore.ResponseCompression.csproj", "{CC783D3A-71CB-4DFD-9769-9EC7EF1ADF1B}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "SpaServices.Extensions", "SpaServices.Extensions", "{B06D06BD-DE60-46E8-AC05-0C1D39E40638}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.SpaServices.Extensions", "src\Middleware\SpaServices.Extensions\src\Microsoft.AspNetCore.SpaServices.Extensions.csproj", "{566B6729-63FF-484D-8F47-91561D76F445}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Mvc.Analyzers", "Mvc.Analyzers", "{515282B6-6EF9-46E0-8EF1-DBD1CD948D9E}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.Mvc.Analyzers", "src\Mvc\Mvc.Analyzers\src\Microsoft.AspNetCore.Mvc.Analyzers.csproj", "{02A85F31-A092-4322-A3D9-91E894D9ECD2}"
Expand Down Expand Up @@ -872,18 +868,12 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.Server
{9E01AF6A-F748-4490-B45B-8558D1E701B4} = {9E01AF6A-F748-4490-B45B-8558D1E701B4}
EndProjectSection
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.SpaServices.Extensions.Tests", "src\Middleware\SpaServices.Extensions\test\Microsoft.AspNetCore.SpaServices.Extensions.Tests.csproj", "{AF964703-404B-4632-9D1F-8EEE646BBA37}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "perf", "perf", "{EE65018D-FA12-461D-B2C5-44CA6E385530}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.WebSockets.Microbenchmarks", "src\Middleware\perf\Microbenchmarks\Microsoft.AspNetCore.WebSockets.Microbenchmarks.csproj", "{A8E1962B-688E-44B3-81F3-BBB9891534CE}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.ResponseCaching.Microbenchmarks", "src\Middleware\perf\ResponseCaching.Microbenchmarks\Microsoft.AspNetCore.ResponseCaching.Microbenchmarks.csproj", "{8A745E35-8098-4EB4-AC55-587B9F0DC4BE}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "samples", "samples", "{8DA88110-5A13-41A9-9F9D-674D921EB442}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "test", "test", "{2D347127-3B13-47B1-84EC-770A9C1E11B0}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "MicrosoftAccount", "MicrosoftAccount", "{8C4006DF-FF48-46B6-A124-10B1EEAA266E}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.Authentication.MicrosoftAccount", "src\Security\Authentication\MicrosoftAccount\src\Microsoft.AspNetCore.Authentication.MicrosoftAccount.csproj", "{F5C54062-B19C-4291-A816-F1B5A167369A}"
Expand Down Expand Up @@ -1380,8 +1370,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ServerComparison.Functional
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.Testing.Tests", "src\Testing\test\Microsoft.AspNetCore.Testing.Tests.csproj", "{1542DC58-1836-4191-A9C5-51D1716D2543}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Sdk", "Sdk", "{FED4267E-E5E4-49C5-98DB-8B3F203596EE}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "testassets", "testassets", "{6126DCE4-9692-4EE2-B240-C65743572995}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BasicTestApp", "src\Components\test\testassets\BasicTestApp\BasicTestApp.csproj", "{46FB7E93-1294-4068-B80A-D4864F78277A}"
Expand Down Expand Up @@ -1628,6 +1616,18 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WebviewAppShared", "src\Com
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestStartupAssembly1", "src\Hosting\test\testassets\TestStartupAssembly1\TestStartupAssembly1.csproj", "{262FF30C-34B4-462D-B5E2-0DABB9196E40}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Spa", "Spa", "{0A064174-8E5C-4F97-B941-A4E302661DF2}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "SpaProxy", "SpaProxy", "{5AC2A052-1D4F-4C2F-BCF5-3F07A3E31857}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.AspNetCore.SpaProxy", "src\Middleware\Spa\SpaProxy\src\Microsoft.AspNetCore.SpaProxy.csproj", "{0DBACF8E-2EDB-47FC-B998-B76522637B2E}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "SpaServices.Extensions", "SpaServices.Extensions", "{7F99E967-3DC1-4198-9D55-47CD9471D0B6}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.AspNetCore.SpaServices.Extensions", "src\Middleware\Spa\SpaServices.Extensions\src\Microsoft.AspNetCore.SpaServices.Extensions.csproj", "{DF4637DA-5F07-4903-8461-4E2DAB235F3C}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.AspNetCore.SpaServices.Extensions.Tests", "src\Middleware\Spa\SpaServices.Extensions\test\Microsoft.AspNetCore.SpaServices.Extensions.Tests.csproj", "{AAB50C64-39AA-4AED-8E9C-50D68E7751AD}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Expand Down Expand Up @@ -2754,18 +2754,6 @@ Global
{CC783D3A-71CB-4DFD-9769-9EC7EF1ADF1B}.Release|x64.Build.0 = Release|Any CPU
{CC783D3A-71CB-4DFD-9769-9EC7EF1ADF1B}.Release|x86.ActiveCfg = Release|Any CPU
{CC783D3A-71CB-4DFD-9769-9EC7EF1ADF1B}.Release|x86.Build.0 = Release|Any CPU
{566B6729-63FF-484D-8F47-91561D76F445}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{566B6729-63FF-484D-8F47-91561D76F445}.Debug|Any CPU.Build.0 = Debug|Any CPU
{566B6729-63FF-484D-8F47-91561D76F445}.Debug|x64.ActiveCfg = Debug|Any CPU
{566B6729-63FF-484D-8F47-91561D76F445}.Debug|x64.Build.0 = Debug|Any CPU
{566B6729-63FF-484D-8F47-91561D76F445}.Debug|x86.ActiveCfg = Debug|Any CPU
{566B6729-63FF-484D-8F47-91561D76F445}.Debug|x86.Build.0 = Debug|Any CPU
{566B6729-63FF-484D-8F47-91561D76F445}.Release|Any CPU.ActiveCfg = Release|Any CPU
{566B6729-63FF-484D-8F47-91561D76F445}.Release|Any CPU.Build.0 = Release|Any CPU
{566B6729-63FF-484D-8F47-91561D76F445}.Release|x64.ActiveCfg = Release|Any CPU
{566B6729-63FF-484D-8F47-91561D76F445}.Release|x64.Build.0 = Release|Any CPU
{566B6729-63FF-484D-8F47-91561D76F445}.Release|x86.ActiveCfg = Release|Any CPU
{566B6729-63FF-484D-8F47-91561D76F445}.Release|x86.Build.0 = Release|Any CPU
{02A85F31-A092-4322-A3D9-91E894D9ECD2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{02A85F31-A092-4322-A3D9-91E894D9ECD2}.Debug|Any CPU.Build.0 = Debug|Any CPU
{02A85F31-A092-4322-A3D9-91E894D9ECD2}.Debug|x64.ActiveCfg = Debug|Any CPU
Expand Down Expand Up @@ -4482,18 +4470,6 @@ Global
{559F1CCF-7E01-4E27-AB45-2E3B6B4984E1}.Release|x64.Build.0 = Release|Any CPU
{559F1CCF-7E01-4E27-AB45-2E3B6B4984E1}.Release|x86.ActiveCfg = Release|Any CPU
{559F1CCF-7E01-4E27-AB45-2E3B6B4984E1}.Release|x86.Build.0 = Release|Any CPU
{AF964703-404B-4632-9D1F-8EEE646BBA37}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{AF964703-404B-4632-9D1F-8EEE646BBA37}.Debug|Any CPU.Build.0 = Debug|Any CPU
{AF964703-404B-4632-9D1F-8EEE646BBA37}.Debug|x64.ActiveCfg = Debug|Any CPU
{AF964703-404B-4632-9D1F-8EEE646BBA37}.Debug|x64.Build.0 = Debug|Any CPU
{AF964703-404B-4632-9D1F-8EEE646BBA37}.Debug|x86.ActiveCfg = Debug|Any CPU
{AF964703-404B-4632-9D1F-8EEE646BBA37}.Debug|x86.Build.0 = Debug|Any CPU
{AF964703-404B-4632-9D1F-8EEE646BBA37}.Release|Any CPU.ActiveCfg = Release|Any CPU
{AF964703-404B-4632-9D1F-8EEE646BBA37}.Release|Any CPU.Build.0 = Release|Any CPU
{AF964703-404B-4632-9D1F-8EEE646BBA37}.Release|x64.ActiveCfg = Release|Any CPU
{AF964703-404B-4632-9D1F-8EEE646BBA37}.Release|x64.Build.0 = Release|Any CPU
{AF964703-404B-4632-9D1F-8EEE646BBA37}.Release|x86.ActiveCfg = Release|Any CPU
{AF964703-404B-4632-9D1F-8EEE646BBA37}.Release|x86.Build.0 = Release|Any CPU
{A8E1962B-688E-44B3-81F3-BBB9891534CE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{A8E1962B-688E-44B3-81F3-BBB9891534CE}.Debug|Any CPU.Build.0 = Debug|Any CPU
{A8E1962B-688E-44B3-81F3-BBB9891534CE}.Debug|x64.ActiveCfg = Debug|Any CPU
Expand Down Expand Up @@ -7699,6 +7675,42 @@ Global
{262FF30C-34B4-462D-B5E2-0DABB9196E40}.Release|x64.Build.0 = Release|Any CPU
{262FF30C-34B4-462D-B5E2-0DABB9196E40}.Release|x86.ActiveCfg = Release|Any CPU
{262FF30C-34B4-462D-B5E2-0DABB9196E40}.Release|x86.Build.0 = Release|Any CPU
{0DBACF8E-2EDB-47FC-B998-B76522637B2E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{0DBACF8E-2EDB-47FC-B998-B76522637B2E}.Debug|Any CPU.Build.0 = Debug|Any CPU
{0DBACF8E-2EDB-47FC-B998-B76522637B2E}.Debug|x64.ActiveCfg = Debug|Any CPU
{0DBACF8E-2EDB-47FC-B998-B76522637B2E}.Debug|x64.Build.0 = Debug|Any CPU
{0DBACF8E-2EDB-47FC-B998-B76522637B2E}.Debug|x86.ActiveCfg = Debug|Any CPU
{0DBACF8E-2EDB-47FC-B998-B76522637B2E}.Debug|x86.Build.0 = Debug|Any CPU
{0DBACF8E-2EDB-47FC-B998-B76522637B2E}.Release|Any CPU.ActiveCfg = Release|Any CPU
{0DBACF8E-2EDB-47FC-B998-B76522637B2E}.Release|Any CPU.Build.0 = Release|Any CPU
{0DBACF8E-2EDB-47FC-B998-B76522637B2E}.Release|x64.ActiveCfg = Release|Any CPU
{0DBACF8E-2EDB-47FC-B998-B76522637B2E}.Release|x64.Build.0 = Release|Any CPU
{0DBACF8E-2EDB-47FC-B998-B76522637B2E}.Release|x86.ActiveCfg = Release|Any CPU
{0DBACF8E-2EDB-47FC-B998-B76522637B2E}.Release|x86.Build.0 = Release|Any CPU
{DF4637DA-5F07-4903-8461-4E2DAB235F3C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{DF4637DA-5F07-4903-8461-4E2DAB235F3C}.Debug|Any CPU.Build.0 = Debug|Any CPU
{DF4637DA-5F07-4903-8461-4E2DAB235F3C}.Debug|x64.ActiveCfg = Debug|Any CPU
{DF4637DA-5F07-4903-8461-4E2DAB235F3C}.Debug|x64.Build.0 = Debug|Any CPU
{DF4637DA-5F07-4903-8461-4E2DAB235F3C}.Debug|x86.ActiveCfg = Debug|Any CPU
{DF4637DA-5F07-4903-8461-4E2DAB235F3C}.Debug|x86.Build.0 = Debug|Any CPU
{DF4637DA-5F07-4903-8461-4E2DAB235F3C}.Release|Any CPU.ActiveCfg = Release|Any CPU
{DF4637DA-5F07-4903-8461-4E2DAB235F3C}.Release|Any CPU.Build.0 = Release|Any CPU
{DF4637DA-5F07-4903-8461-4E2DAB235F3C}.Release|x64.ActiveCfg = Release|Any CPU
{DF4637DA-5F07-4903-8461-4E2DAB235F3C}.Release|x64.Build.0 = Release|Any CPU
{DF4637DA-5F07-4903-8461-4E2DAB235F3C}.Release|x86.ActiveCfg = Release|Any CPU
{DF4637DA-5F07-4903-8461-4E2DAB235F3C}.Release|x86.Build.0 = Release|Any CPU
{AAB50C64-39AA-4AED-8E9C-50D68E7751AD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{AAB50C64-39AA-4AED-8E9C-50D68E7751AD}.Debug|Any CPU.Build.0 = Debug|Any CPU
{AAB50C64-39AA-4AED-8E9C-50D68E7751AD}.Debug|x64.ActiveCfg = Debug|Any CPU
{AAB50C64-39AA-4AED-8E9C-50D68E7751AD}.Debug|x64.Build.0 = Debug|Any CPU
{AAB50C64-39AA-4AED-8E9C-50D68E7751AD}.Debug|x86.ActiveCfg = Debug|Any CPU
{AAB50C64-39AA-4AED-8E9C-50D68E7751AD}.Debug|x86.Build.0 = Debug|Any CPU
{AAB50C64-39AA-4AED-8E9C-50D68E7751AD}.Release|Any CPU.ActiveCfg = Release|Any CPU
{AAB50C64-39AA-4AED-8E9C-50D68E7751AD}.Release|Any CPU.Build.0 = Release|Any CPU
{AAB50C64-39AA-4AED-8E9C-50D68E7751AD}.Release|x64.ActiveCfg = Release|Any CPU
{AAB50C64-39AA-4AED-8E9C-50D68E7751AD}.Release|x64.Build.0 = Release|Any CPU
{AAB50C64-39AA-4AED-8E9C-50D68E7751AD}.Release|x86.ActiveCfg = Release|Any CPU
{AAB50C64-39AA-4AED-8E9C-50D68E7751AD}.Release|x86.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
Expand Down Expand Up @@ -7899,8 +7911,6 @@ Global
{34F24889-22D2-40A1-A2AB-A43B9061FE0D} = {39086512-EBC8-4061-BE34-DCCA5D1BA585}
{512EFCA7-1590-492A-8D06-84744F79DA91} = {E5963C9F-20A6-4385-B364-814D2581FADF}
{CC783D3A-71CB-4DFD-9769-9EC7EF1ADF1B} = {512EFCA7-1590-492A-8D06-84744F79DA91}
{B06D06BD-DE60-46E8-AC05-0C1D39E40638} = {E5963C9F-20A6-4385-B364-814D2581FADF}
{566B6729-63FF-484D-8F47-91561D76F445} = {B06D06BD-DE60-46E8-AC05-0C1D39E40638}
{515282B6-6EF9-46E0-8EF1-DBD1CD948D9E} = {1A0EFF9F-E699-4303-AE50-BFAF9804EEB6}
{02A85F31-A092-4322-A3D9-91E894D9ECD2} = {515282B6-6EF9-46E0-8EF1-DBD1CD948D9E}
{33CAD745-5912-47D3-BAF3-5AE580FED275} = {D67E977E-75DF-41EE-8315-6DBF5C2B7357}
Expand Down Expand Up @@ -8127,7 +8137,6 @@ Global
{5BF572A5-24AF-4815-BF0C-F57DA650207D} = {9ECF118E-D7A5-4805-B698-DE9013BB91C6}
{036FB9FC-7F26-4982-B94E-2C32B4C836E1} = {D67E977E-75DF-41EE-8315-6DBF5C2B7357}
{559F1CCF-7E01-4E27-AB45-2E3B6B4984E1} = {036FB9FC-7F26-4982-B94E-2C32B4C836E1}
{AF964703-404B-4632-9D1F-8EEE646BBA37} = {B06D06BD-DE60-46E8-AC05-0C1D39E40638}
{EE65018D-FA12-461D-B2C5-44CA6E385530} = {E5963C9F-20A6-4385-B364-814D2581FADF}
{A8E1962B-688E-44B3-81F3-BBB9891534CE} = {EE65018D-FA12-461D-B2C5-44CA6E385530}
{8A745E35-8098-4EB4-AC55-587B9F0DC4BE} = {EE65018D-FA12-461D-B2C5-44CA6E385530}
Expand Down Expand Up @@ -8379,7 +8388,6 @@ Global
{3CBC4802-E9B8-48B7-BC8C-B0AFB9EEC643} = {0ACCEDA7-339C-4B4D-8DD4-1AC271F31C04}
{48E64014-B249-4644-8AEB-CDEE8ABA0DC2} = {3CBC4802-E9B8-48B7-BC8C-B0AFB9EEC643}
{1542DC58-1836-4191-A9C5-51D1716D2543} = {05A169C7-4F20-4516-B10A-B13C5649D346}
{FED4267E-E5E4-49C5-98DB-8B3F203596EE} = {562D5067-8CD8-4F19-BCBB-873204932C61}
{6126DCE4-9692-4EE2-B240-C65743572995} = {0508E463-0269-40C9-B5C2-3B600FB2A28B}
{46FB7E93-1294-4068-B80A-D4864F78277A} = {6126DCE4-9692-4EE2-B240-C65743572995}
{25FA84DB-EEA7-4068-8E2D-F3D48B281C16} = {6126DCE4-9692-4EE2-B240-C65743572995}
Expand Down Expand Up @@ -8503,6 +8511,12 @@ Global
{036C6BDA-7B69-4E8C-A921-822DA5972A56} = {94D0D6F3-8632-41DE-908B-47A787D570FF}
{64C3BAC8-C4F8-466A-9E84-0400EE54B25A} = {D3B76F4E-A980-45BF-AEA1-EA3175B0B5A1}
{262FF30C-34B4-462D-B5E2-0DABB9196E40} = {C1409A8F-555A-4A88-B803-C6D3E8B6C3B0}
{0A064174-8E5C-4F97-B941-A4E302661DF2} = {E5963C9F-20A6-4385-B364-814D2581FADF}
{5AC2A052-1D4F-4C2F-BCF5-3F07A3E31857} = {0A064174-8E5C-4F97-B941-A4E302661DF2}
{0DBACF8E-2EDB-47FC-B998-B76522637B2E} = {5AC2A052-1D4F-4C2F-BCF5-3F07A3E31857}
{7F99E967-3DC1-4198-9D55-47CD9471D0B6} = {0A064174-8E5C-4F97-B941-A4E302661DF2}
{DF4637DA-5F07-4903-8461-4E2DAB235F3C} = {7F99E967-3DC1-4198-9D55-47CD9471D0B6}
{AAB50C64-39AA-4AED-8E9C-50D68E7751AD} = {7F99E967-3DC1-4198-9D55-47CD9471D0B6}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {3E8720B3-DBDD-498C-B383-2CC32A054E8F}
Expand Down
3 changes: 2 additions & 1 deletion eng/ProjectReferences.props
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,8 @@
<ProjectReferenceProvider Include="Microsoft.AspNetCore.ResponseCompression" ProjectPath="$(RepoRoot)src\Middleware\ResponseCompression\src\Microsoft.AspNetCore.ResponseCompression.csproj" />
<ProjectReferenceProvider Include="Microsoft.AspNetCore.Rewrite" ProjectPath="$(RepoRoot)src\Middleware\Rewrite\src\Microsoft.AspNetCore.Rewrite.csproj" />
<ProjectReferenceProvider Include="Microsoft.AspNetCore.Session" ProjectPath="$(RepoRoot)src\Middleware\Session\src\Microsoft.AspNetCore.Session.csproj" />
<ProjectReferenceProvider Include="Microsoft.AspNetCore.SpaServices.Extensions" ProjectPath="$(RepoRoot)src\Middleware\SpaServices.Extensions\src\Microsoft.AspNetCore.SpaServices.Extensions.csproj" />
<ProjectReferenceProvider Include="Microsoft.AspNetCore.SpaProxy" ProjectPath="$(RepoRoot)src\Middleware\Spa\SpaProxy\src\Microsoft.AspNetCore.SpaProxy.csproj" />
<ProjectReferenceProvider Include="Microsoft.AspNetCore.SpaServices.Extensions" ProjectPath="$(RepoRoot)src\Middleware\Spa\SpaServices.Extensions\src\Microsoft.AspNetCore.SpaServices.Extensions.csproj" />
<ProjectReferenceProvider Include="Microsoft.AspNetCore.StaticFiles" ProjectPath="$(RepoRoot)src\Middleware\StaticFiles\src\Microsoft.AspNetCore.StaticFiles.csproj" />
<ProjectReferenceProvider Include="Microsoft.AspNetCore.WebSockets" ProjectPath="$(RepoRoot)src\Middleware\WebSockets\src\Microsoft.AspNetCore.WebSockets.csproj" />
<ProjectReferenceProvider Include="Microsoft.AspNetCore.Mvc.Razor.Extensions.Version1_X" ProjectPath="$(RepoRoot)src\Razor\Microsoft.AspNetCore.Mvc.Razor.Extensions.Version1_X\src\Microsoft.AspNetCore.Mvc.Razor.Extensions.Version1_X.csproj" />
Expand Down
3 changes: 2 additions & 1 deletion src/Middleware/Middleware.slnf
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,8 @@
"src\\Middleware\\NodeServices\\samples\\NodeServicesExamples\\NodeServicesExamples.csproj",
"src\\Middleware\\NodeServices\\src\\Microsoft.AspNetCore.NodeServices.csproj",
"src\\Middleware\\SpaServices\\src\\Microsoft.AspNetCore.SpaServices.csproj",
"src\\Middleware\\SpaServices.Extensions\\src\\Microsoft.AspNetCore.SpaServices.Extensions.csproj",
"src\\Middleware\\Spa\\SpaServices.Extensions\\src\\Microsoft.AspNetCore.SpaServices.Extensions.csproj",
"src\\Middleware\\Spa\\SpaProxy\\src\\Microsoft.AspNetCore.SpaProxy.csproj",
"src\\Middleware\\NodeServices\\test\\Microsoft.AspNetCore.NodeServices.Tests.csproj",
"src\\Middleware\\HeaderPropagation\\src\\Microsoft.AspNetCore.HeaderPropagation.csproj",
"src\\Middleware\\HeaderPropagation\\test\\Microsoft.AspNetCore.HeaderPropagation.Tests.csproj",
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<TargetFramework>$(DefaultNetCoreTargetFramework)</TargetFramework>
<Nullable>enable</Nullable>
<RemoveDevicePlatformSupport>true</RemoveDevicePlatformSupport>
<!-- This is ok since this assembly is not referenced by any application but it is loaded as a hosting startup
assembly for apps referencing this package-->
</PropertyGroup>

<ItemGroup>
<Reference Include="Microsoft.AspNetCore.Hosting" />
<None Update="build\Microsoft.AspNetCore.SpaProxy.targets" Pack="true" PackagePath="build\Microsoft.AspNetCore.SpaProxy.targets" />
</ItemGroup>

</Project>
26 changes: 26 additions & 0 deletions src/Middleware/Spa/SpaProxy/src/SpaHostingStartup.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
// Copyright (c) .NET Foundation. All rights reserved.
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.

using System;
using System.IO;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.DependencyInjection;

[assembly: HostingStartup(typeof(Microsoft.AspNetCore.SpaProxy.SpaHostingStartup))]

namespace Microsoft.AspNetCore.SpaProxy
{
internal class SpaHostingStartup : IHostingStartup
{
public void Configure(IWebHostBuilder builder)
{
builder.ConfigureServices(services =>
{
if (File.Exists(Path.Combine(AppContext.BaseDirectory, "spa.proxy.json")))
{
services.AddHostedService<SpaProxyLaunchManager>();
}
});
}
}
}
Loading

0 comments on commit 6bc4b79

Please sign in to comment.