我有一个 .NET Core 2.0 MVC 和 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?}");
}
);
对于 web api,能够使用 Contoller 上的 Route 属性使其工作,但实际上不必在所有控制器中指定根路径。在开发中,在自定义 Web 应用程序目录中的生产环境中使用“/”。
[Route("custom/api/[controller]")]
public class MyController : Controller