首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将站点部署到IIS上

如何将站点部署到IIS上
EN

Stack Overflow用户
提问于 2020-06-12 00:08:47
回答 1查看 3.5K关注 0票数 3

我是VueJS和SPA的新手。我已经创建了一个新的ASP站点,其中有一个用于数据的WebAPI控制器和一个VueJS前端。我现在正试图将这个站点部署到IIS上,但我不知道如何正确地完成它。我在IIS中创建了一个新应用程序,将应用程序池设置为“非托管代码”,并将物理位置设置为VueJS app /dist文件夹。该网站正在加载,但我得到404为我所有的服务电话。我认为这是因为站点的根目录设置为VueJS应用程序文件夹,而不是ASP.NET核心文件夹的根。我如何正确地设置它以从myServer/mySite为我的应用提供服务,以及如何将我的服务端点设置为myServer/mySite/api/myController/myAction?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 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中。

例如:

代码语言:javascript
复制
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/");
            }
        });
    }
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62335517

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档