Как установить стартовую страницу в web-сервере dotnet?

Я пытаюсь создать веб-приложение с сетевым web-сервером dotnet, но я не знаю, как установить index.html в качестве начальной страницы, что можно легко сделать с помощью web-инфраструктуры dotnet. И я попытался использовать app.UseDefaultFiles();app.UseStaticFiles(); Однако для решения этой проблемы это не сработало.

Ответ 1

Если вы используете статический файл в качестве страницы по умолчанию, следующий код может вам помочь.

 app.UseDefaultFiles(new DefaultFilesOptions { DefaultFileNames = new 
     List<string> { "index.html" } });

Если вы используете представление MVC, просто добавьте роль маршрутизации.

app.UseMvc(routes =>
   {
       routes.MapRoute(
           name: "default",
           template: "{controller=Home}/{action=Index}");
   });

Ответ 2

В startSettings.json вы можете определить startUrl

  "profiles": {
    "IIS Express": {
      "commandName": "IISExpress",
    "launchBrowser": true,
    "launchUrl": "<your relative URL here>",
    "environmentVariables": {
      "ASPNETCORE_ENVIRONMENT": "Development"
    }
  }

Ответ 3

С помощью

app.UseDefaultFiles();
app.UseStaticFiles();

это правильный путь. Но всегда используйте UseDefaultFiles() перед UseStaticFiles Иначе это не сработает.

Для справки: основные основы статических файлов

Ответ 5

Вы можете установить любой файл в любой папке под wwwroot как файл defaut с помощью options.DefaultFileNames.Add в startup.cs.

Например, чтобы использовать myfile.html в wwwroot/folder1/folder2/myfile.html, вы добавите это в Startup.cs

options.DefaultFileNames.Clear();
options.DefaultFileNames.Add("folder1/folder2/myfile.html");
app.UseDefaultFiles (варианты);
app.UseStaticFiles();

Но некоторое время это может не сработать. Например, я создал проект меню "Файл"> "Создать"> "Проект", затем выбрал.NET Core> ASP.NET Core Web Application и выбранный Web Api в качестве шаблона проекта. F5 всегда открывает страницу api/values, хотя я добавил index.html в папку wwwroot и добавил следующее в startup.cs

DefaultFilesOptions options = new DefaultFilesOptions();
                options.DefaultFileNames.Clear();
                options.DefaultFileNames.Add("mypage.html");
                app.UseDefaultFiles(options);
               app.UseStaticFiles();

Затем я открыла страницу свойств проекта и удалила значение в окне браузера Debug/Launch (которое было установлено на api/values). Теперь настройка стартовой страницы работает, а mypage.html - это страница запуска. Обратите внимание, что эта страница должна находиться в папке wwwroot, поскольку вы решили использовать статические файлы.

Ответ 6

Если Index.html находится в корне проекта, он будет отправлен по умолчанию.