我是VueJS和SPA的新手。我已经创建了一个新的ASP站点,其中有一个用于数据的WebAPI控制器和一个VueJS前端。我现在正试图将这个站点部署到IIS上,但我不知道如何正确地完成它。我在IIS中创建了一个新应用程序,将应用程序池设置为“非托管代码”,并将物理位置设置为VueJS app /dist文件夹。该网站正在加载,但我得到404为我所有的服务电话。我认为这是因为站点的根目录设置为VueJS应用程序文件夹,而不是ASP.NET核心文件夹的根。我如何正确地设置它以从myServer/mySite为我的应用提供服务,以及如何将我的服务端点设置为myServer/mySite/api/myController/myAction?
发布于 2020-06-13 00:27:53
场景:您的dotnet核心应用程序有API端点,您希望在同一个站点上托管客户端站点SPA。API调用将传递到dotnet应用程序,任何其他请求都将服务于SPA的index.html。
.NET核心使用来自Microsoft.AspNetCore.SpaServices命名空间(如UseSpa() )的方法支持此场景。
还请注意,在.NET 5中,这些扩展正在移动到单独的包Microsoft.AspNetCore.SpaServices.Extensions。它现在是可用的,但没有很好的记录。
在本例中,构建SPA应该放在ClientApp/dist中。
例如:
using Microsoft.AspNetCore.SpaServices;
public class Startup
{
// ...
public void ConfigureServices(IServiceCollection services)
{
// In production, the SPA files will be served from this directory
services.AddSpaStaticFiles(configuration =>
{
configuration.RootPath = "ClientApp/dist";
});
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
// ...
app.UseStaticFiles();
app.UseSpaStaticFiles();
app.UseMvc();
// Must be near the end of the method because
// it will send any unhandled requests to index.html for SPA
app.UseSpa(spa =>
{
spa.Options.SourcePath = "ClientApp";
if (env.IsDevelopment())
{
// Development requests are send through to local node server
spa.UseProxyToSpaDevelopmentServer("http://localhost:8080/");
}
});
}
}https://stackoverflow.com/questions/62335517
复制相似问题