.net core 如何从自定义web应用程序目录而不仅仅是根目录运行.NET核心API应用程序?
我有一个.NETCore2.0MVC和API应用程序。可以从web根目录访问该应用程序,例如localhost:51672/、localhost:51672/Home、localhost:51672/api/。。。。我希望有一个选项可以从不同的web应用程序目录运行,例如localhost:51672/custom、localhost:51672/custom/Home、localhost:51672/custom/api/ 我假设在Kestrel中或者在调用dotnet run时有一些选项,但找不到它。不必修改代码中的多个位置以使其工作,更希望使用可配置或运行时选项,而不必在多个位置的代码中硬连接自定义根路径 下面使用自定义根目录,除了swagger.net core 如何从自定义web应用程序目录而不仅仅是根目录运行.NET核心API应用程序?,.net-core,kestrel,.net Core,Kestrel,我有一个.NETCore2.0MVC和API应用程序。可以从web根目录访问该应用程序,例如localhost:51672/、localhost:51672/Home、localhost:51672/api/。。。。我希望有一个选项可以从不同的web应用程序目录运行,例如localhost:51672/custom、localhost:51672/custom/Home、localhost:51672/custom/api/ 我假设在Kestrel中或者在调用dotnet run时有一些选项,但
app.UseSwaggerUI(c =>
{
c.SwaggerEndpoint("/swagger/v1/swagger.json", "FusionVM V1");
});
app.UseMvc( routes =>
{
routes.MapRoute(
name: "default",
template: "custom/{controller=Home}/{action=Index}/{id?}");
}
);
对于WebAPI,我们能够使用控制器上的Route属性来实现这一点,尽管我们确实不希望在所有控制器中都指定根路径。在dev中,使用/whileon-on-production,可从自定义web应用目录获得
[Route("custom/api/[controller]")]
public class MyController : Controller
找到了一些有用的东西。在Startup.cs中添加了以下内容
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
app.UsePathBase("/custom");
app.UseStaticFiles("/custom");
...
这适用于MVC和Web Api。对于Swagger,必须修改其json端点
app.UseSwaggerUI(c =>
{
c.SwaggerEndpoint("/custom/swagger/v1/swagger.json", "My API");
});