Документ по умолчанию сайта asp.net в подпапке - PullRequest
13 голосов
/ 07 января 2009

Мой документ по умолчанию находится в подпапке, а не в корне. Как мне сделать его по умолчанию на веб-сайте asp.net 2.0.

Попробовал настройку документа iis7 по умолчанию для '/pages/default.aspx' '~ / pages / default.aspx', но это не сработало.

Ответы [ 5 ]

16 голосов
/ 07 января 2009

Документ по умолчанию не совпадает с начальной страницей. Документ по умолчанию означает, что если я запросил mysite.com/somefolder и не указал файл, какой файл должен отображать IIS.

Если вы хотите использовать определенную страницу в качестве домашней страницы, создайте файл Default.aspx и запишите его в своем классе codebehind:

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

Поскольку клиент мог отключить Javascript, подход на стороне сервера был бы более надежным. Однако лучше всего использовать постоянное перенаправление вместо простого Response.Redirect. Также делать это с помощью JS будет плохо с точки зрения SEO.

8 голосов
/ 25 июня 2013

Вам не нужно создавать фиктивную страницу 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 гарантированно запускается один раз и только один раз при запуске приложения.
  • Первая строка кода, получает коллекцию маршрутов URL для вашего приложения.
  • Вторая строка кода определяет новый маршрут, указывающий на вашу внутреннюю страницу в подпапке, которую вы хотите.
  • Второй аргумент пуст, чтобы указать, что этот маршрут используется, когда не запрашивается конкретная страница и не существует документа по умолчанию.
2 голосов
/ 07 января 2009

Документы по умолчанию - это особенность вложенных папок - то, что вы пытаетесь сделать, не будет (напрямую) работать. Настройте файл default.htm в корневом каталоге и обновите его до реальной «домашней страницы».

Лучший вопрос, который вам следует задать, - как на Земле ваша домашняя страница вышла из корневого каталога.

0 голосов
/ 11 июня 2018

Скажите "index.html" - это страница по умолчанию, которую вы хотите, и она присутствует в подпапке "Public".

Вместо указания "/Public/index.html" в качестве сайта по умолчанию, попробуйте "Public / index.html"

0 голосов
/ 18 июля 2012

Теоретически вы можете иметь файл Web.config внутри каталога и использовать элемент defaultDocument для установки документа по умолчанию. Смотрите здесь: https://stackoverflow.com/a/2012079/125938.
К сожалению, я не смог заставить его работать самостоятельно локально, но это может быть , потому что оно не поддерживается на сервере разработки Visual Studio.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...