【问题标题】:Static Html page is not working after hosting in ASP.NET MVC在 ASP.NET MVC 中托管后,静态 Html 页面不起作用
【发布时间】:2015-05-28 04:13:35
【问题描述】:

在我的 MVC 项目中,根文件夹中有一个Default.html 文件,并将此文件作为默认路由路由。

        routes.MapRoute(
            name: "",
            url: "Default.html"
            //,
            //defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
        );

当我像http://localhost:51353/Default.html一样访问它时,它工作正常

我在我的网络服务器中托管(包括这个静态文件)这个项目。但它显示错误:

是否需要任何其他配置来执行此操作?

【问题讨论】:

  • 在 webconfig 中检查 <modules runAllManagedModulesForAllRequests="true">。由于它在本地主机中工作,这可能是一个问题,它解决了我的问题

标签: c# asp.net asp.net-mvc asp.net-mvc-4 iis


【解决方案1】:

如果您想在ASP.net MVC 项目中托管static HTML page,则需要在MVC 中配置路由配置以忽略对这些页面的请求。

它在本地工作,因为您可能已将其设置为 Visual Studio 中的起始页。为此,您需要告诉MVC 忽略该路由,如果它用于HTML pageASPX page。找到您的路由配置部分,它位于App_Start 文件夹下的RouteConfig.cs 中。使用IgnoreRoute() 方法告诉路由忽略特定路径。

routes.IgnoreRoute("Default.html"); //ignore the specific HTML page

现在MVC 忽略加载Default.html 页面的请求,并让IIS 处理资源。

【讨论】:

    【解决方案2】:

    根据 MVC 路由,您不能将静态文件映射到路由表,因为当 MVC 路由机制提供对物理存在的静态文件的直接访问时。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多