Sitemap.xml 未在 ActionResult 中打开

问题描述

我在 Home Controller 中创建了一个带有站点地图操作的 URL。如果你击中 /首页/站点地图显示了这一点:

enter image description here

但是一旦我击中 站点地图.xml url 显示 404 错误

enter image description here

路由已正确配置在 RouteConfig.cs 像这样

routes.MapRoute(
    "Sitemap","sitemap.xml",new { controller = "Home",action = "Sitemap" }
);

网址有什么问题?

解决方法

当路由针对磁盘文件的请求时,设置 routes.RouteExistingFiles = true; 使路由系统更具包容性。但是现在我们应该使用 IgnoreRoute 类的 RouteCollection 方法,以防止针对我们的路由评估 sitemap.xml URL。 IgnoreRoute 方法在 RouteCollection 中创建一个条目,其中路由处理程序是 StopRoutingHandler 类的实例,而不是 MvcRouteHandler

routes.RouteExistingFiles = true;
routes.IgnoreRoute("sitemap.xml");

routes.MapRoute("Sitemap","sitemap.xml",new { controller = "Home",action = "Sitemap" });