【问题标题】:Serving multiple sites from the same wwwwroot从同一个 wwwwroot 服务多个站点
【发布时间】:2021-07-14 21:46:01
【问题描述】:

我有一个 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")
        });
    }

【问题讨论】:

    标签: asp.net-core-mvc virtualhost web-optimization


    【解决方案1】:

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

    【讨论】:

    • 这个多租户应用程序。同一域中的多个公司的单个应用服务器:example.com/company1、example.com/company2 等都具有相同的 wwwroot 文件。被要求避免在 wwwroot 下为 company1、comapany2 创建重复目录的方法。它在 Apache 和 Debian Linux 下运行
    猜你喜欢
    • 2011-04-27
    • 2016-09-21
    • 2017-05-22
    • 1970-01-01
    • 2018-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多