从同一个 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/
我有一个 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/