gpt4 book ai didi

asp.net-mvc - ASP.NET MVC不提供默认文档

转载 作者:行者123 更新时间:2023-12-03 07:35:52 29 4
gpt4 key购买 nike

我有一个ASP.NET MVC应用程序,其中默认页面应为index.html,这是磁盘上的实际文件。

我可以使用www.mydomain.com/index.html浏览到该文件,因此我知道该文件将被提供并存在,但是如果使用www.mydomain.com,则会收到404。

我已经确保在IIS7中正确设置了默认文档,并且甚至对所有在global.asax中定义的路由都进行了注释,以确保没有导致此问题的路由。

总结一下:

  • 我在磁盘上有一个index.html文件,并且IIS7设置为使用index.html作为默认文档。
  • 如果删除我的ASP.NET MVC应用程序并保留index.html文件,则该文件将按预期用作默认文档。
  • 如果我发布ASP.NET MVC应用程序,则默认文档不会提供index.html。

  • 有谁知道如何获取ASP.NET MVC来提供默认文档?

    最佳答案

    ASP.Net MVC路由由Global.asax / Global.asax.cs文件控制。现成的路由如下所示:

    public static void RegisterRoutes(RouteCollection routes)
    {
    routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

    routes.MapRoute(
    "Default", // Route name
    "{controller}/{action}/{id}", // URL with parameters
    new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
    );
    }

    没有指定路径时,即。 www.domain.tld/,路由是空字符串 ""。因此,路由将查找具有该名称的 Controller 。换句话说,它将寻找完全没有名称的 Controller 。当找不到此类 Controller 时,它将提供 404 NOT FOUND错误页面。

    要解决该问题,请将该路径映射到有意义的路径,或者完全忽略该路径,将控制权移交给index.html文件:
    routes.IgnoreRoute("");

    关于asp.net-mvc - ASP.NET MVC不提供默认文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2422542/

    29 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com