从同一个 wwwwroot 服务多个站点

Serving multiple sites from the same wwwwroot

我有一个 ASP.NET Core 5 MVC 应用程序,它使用 ASP.NET Core Web Optimizer 为多个站点提供服务;例如,

https://example.com 
https://example.com/store1
https://example.com/store2

所有站点都有相同的 wwwwroot 目录。

我尝试使用下面的代码在我的 startup.cs 中提供一个 wwwwroot,并且成功了。然而,Guru 写道,每个中间件都应该只被调用一次。

如何使用同一个 wwwroot 目录为多个站点提供服务?

在我的 startup.cs:

    public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
    {  
        app.UseWebOptimizer();
        app.UseWebOptimizer(env, new FileProviderOptions[] { new FileProviderOptions()
                {
                    RequestPath = new PathString("/store1"),
                    FileProvider = env.WebRootFileProvider
                }
                });
        app.UseWebOptimizer(env, new FileProviderOptions[] { new FileProviderOptions()
                {
                    RequestPath = new PathString("/store2"),
                    FileProvider = env.WebRootFileProvider
                }
                });
        app.UseStaticFiles();
        app.UseStaticFiles(new StaticFileOptions
        {
            RequestPath = new PathString("/store1")
        });
        app.UseStaticFiles(new StaticFileOptions
        {
            RequestPath = new PathString("/store2")
        });
    }

这些网站是不同的独立项目吗?或者它们只是您项目下的不同路线? 如果它们是路由,您应该简单地更改项目中的路由配置。 如果它们是独立的站点,您应该考虑在您的 Web 服务器的根应用程序下设置多个应用程序,然后将每个项目发布到其应用程序。 对于 IIS,有关于如何操作的 Microsoft 指南:https://docs.microsoft.com/en-us/iis/configuration/system.applicationhost/sites/site/application/