问题描述
我在 Home Controller 中创建了一个带有站点地图操作的 URL。如果你击中 /首页/站点地图 它显示了这一点:
但是一旦我击中 站点地图.xml url 显示 404 错误:
路由已正确配置在 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" });