我的.Net Core API和我的Angular网站都在本地构建和运行。现在我想发布到.Net Hosting provier,而不是Azure。那么最好的方法是启用静态内容然后构建我的Angular应用程序并将其放在API解决方案的wwwroot中吗?
旁注:我正在使用.net core 2.x,如果这很重要的话。并且,通过Angular我的意思是Angular2而不是AngularJS。这是标准术语吗? :-)
答案 0 :(得分:11)
要回答您的问题,是的,您应该启用静态内容并将您的Angular应用和文件构建到wwwroot
。
这是您可以用来在.NET Core 2.0上提供Angular应用程序的最简单的Startup
。
public class Startup
{
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
// this will serve wwwroot/index.html when path is '/'
app.UseDefaultFiles();
// this will serve js, css, images etc.
app.UseStaticFiles();
// this ensures index.html is served for any requests with a path
// and prevents a 404 when the user refreshes the browser
app.Use(async (context, next) =>
{
if (context.Request.Path.HasValue && context.Request.Path.Value != "/")
{
context.Response.ContentType = "text/html";
await context.Response.SendFileAsync(
env.ContentRootFileProvider.GetFileInfo("wwwroot/index.html")
);
return;
}
await next();
});
}
}
正如您所看到的,不需要MVC或剃刀视图。