14

デフォルトのドキュメントはルートではなくサブフォルダーにあります。どうすればasp.net 2.0 Webサイトでデフォルトにできますか。

iis7 の既定のドキュメント設定を '/pages/default.aspx' '~/pages/default.aspx' にしようとしましたが、うまくいきませんでした。

4

5 に答える 5

17

デフォルトのドキュメントは開始ページと同じではありません。デフォルトのドキュメントとは、ファイルを要求mysite.com/somefolderして指定しなかった場合、IIS が表示するファイルを意味します。

特定のページをホームページとして使用する場合は、Default.aspx ファイルを作成し、分離コード クラスに次のように記述します。

public override void ProcessRequest(HttpContext context) {
    context.Response.Redirect("pages/default.aspx", true);
}

クライアントが Javascript を無効にしている可能性があるため、サーバー側のアプローチの方が信頼性が高くなります。ただし、単純なリダイレクトではなく、永続的なリダイレクトを発行することをお勧めしResponse.Redirectます。また、JS を使用してそれを行うことは、SEO の観点からは良くありません。

于 2009-01-07T19:56:42.770 に答える
9

ダミーの Default.aspx ページを作成する必要はありません。

Global.asax.cs ファイルに、次のように記述します。

public void Application_Start(object sender, EventArgs e)
{
    var routeCollection = RouteTable.Routes;
    routeCollection.MapPageRoute("DefaultRoute", string.Empty, "~/YourDesiredSubFolder/YourDesiredDocument.aspx");
}

説明:

  • Application_Start コードは、アプリケーションの開始時に 1 回だけ実行されることが保証されています。
  • コードの最初の行は、アプリケーションの URL ルートのコレクションを取得します。
  • コードの 2 行目は、必要なサブフォルダー内の内部ページを指す新しいルートを定義します。
  • 2 番目の引数は空で、特定のページが要求されておらず、既定のドキュメントが存在しない場合にこのルートが使用されることを示します。
于 2013-06-25T19:36:28.413 に答える
2

デフォルトのドキュメントはサブフォルダー固有のものです。あなたがしようとしていることは (直接) 機能しません。ルートに default.htm ファイルを設定し、実際の「ホームページ」に更新します。

あなたが尋ねるべきより良い質問は、地球上であなたのホームページがルートディレクトリから抜け出した方法です.

于 2009-01-07T19:51:59.567 に答える
0

理論的には、ディレクトリ内に Web.config ファイルを配置し、defaultDocument 要素を使用して既定のドキュメントを設定できます。ここを参照してください: https://stackoverflow.com/a/2012079/125938
残念ながら、ローカルで動作させることはできませんでしたが、Visual Studio 開発サーバーでサポートされていないことが原因である可能性があります。

于 2012-07-18T13:25:03.443 に答える
0

「index.html」が必要なデフォルトのページであり、「Public」サブフォルダーにあるとします。

「/Public/index.html」をデフォルトのサイトとして指定する代わりに、「Public/index.html」を試してください

于 2018-06-11T09:29:34.500 に答える