Asp.net core mvc 从同一WWroot为多个站点提供服务

Asp.net core mvc 从同一WWroot为多个站点提供服务,asp.net-core-mvc,virtualhost,web-optimization,Asp.net Core Mvc,Virtualhost,Web Optimization,我有一个ASP.NET Core 5 MVC应用程序,它使用;e、 g 所有站点都有相同的wwroot目录 我尝试了下面的代码,在我的startup.cs中提供了一个wwroot,它成功了。然而,Guru写道,每个中间件应该只调用一次 如何使用相同的wwwroot目录为多个站点提供服务 在mystartup.cs中: public void Configure(IApplicationBuilder app, IWebHostEnvironment env) {

我有一个ASP.NET Core 5 MVC应用程序,它使用;e、 g

所有站点都有相同的
wwroot
目录

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

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

在my
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指南:

此多租户应用程序。单个应用程序服务器同一域中的多个公司:example.com/company1、example.com/company2等。所有公司都具有相同的wwwroot文件。询问如何避免在公司1的wwwroot下为comapany2创建重复目录。它在Apache和Debian Linux下运行
    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")
        });
    }