0

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

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

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

我尝试了下面的代码来提供一个单一wwwwrootstartup.cs,它工作。但是,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")
        });
    }
4

1 回答 1

0

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

于 2021-04-20T18:12:58.150 回答