web-dev-qa-db-ja.com

index.htmlをデフォルトページとして設定します

空のASP.NETアプリケーションがあり、index.htmlファイルを追加しました。 index.htmlをサイトのデフォルトページとして設定したい。

Index.htmlを右クリックして開始ページとして設定しようとしました。実行すると、URLはhttp://localhost:5134/index.htmlしかし、私が本当に欲しいのは、次のように入力することです:http://localhost:5134、index.htmlページをロードする必要があります。

私のルート設定:

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

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

空のルートを無視するようにルート構成に指示を追加し、問題を解決しました。

routes.IgnoreRoute(""); 
31
vir

@virが答えたように、routes.IgnoreRoute("");RegisterRoutes(RouteCollection routes)に追加します。これはデフォルトでRouteConfig.csにあります。

メソッドは次のようになります。

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

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

その理由は、ASP.NET MVCがURL管理を引き継ぎ、デフォルトですべての拡張子のないURLがweb.configで定義された拡張子のないUrlハンドラーによって制御されるようにルーティングが行われるためです。

詳細な説明があります こちら

21
Alex Sanséau

WebアプリがIISで実行されていると仮定すると、web.configファイルでデフォルトページを指定できます。

<system.webServer>
    <defaultDocument>
        <files>
            <clear />
            <add value="index.html" />
        </files>
    </defaultDocument>
</system.webServer>
7
Boris Lipschitz

新しいコントローラーDefaultControllerを作成します。インデックスアクションでは、1行のリダイレクトを記述しました。

return Redirect("~/index.html")

RouteConfig.csで、ルートのcontroller = "Default"を変更します。

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

1つの解決策は次のとおりです。

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

つまり、MVCプロジェクトでこのコードをコメントまたは削除して、最初のリクエストを行うときのデフォルトの動作を回避しますhttp://localhost:5134/

Index.htmlは、ソリューションのルートにある必要があります。

お役に立てれば!わたしにはできる。

3
sergio