Как установить стартовую страницу в 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
Иначе это не сработает.
Для справки: основные основы статических файлов
Ответ 4
Файл index.html должен находиться в папке wwwroot
wwwroot/index.html
https://docs.microsoft.com/en-us/aspnet/core/fundamentals/static-files
Ответ 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 находится в корне проекта, он будет отправлен по умолчанию.