Это должно помочь тебе

могу получить ядро ​​asp.net для обслуживания файла index.html из моего wwwroot?

Причина, по которой я хочу это сделать, заключается в том, что я разрабатываю угловое приложение для 4, использующее угловой интерфейс командной строки, и оно отвечает за весь процесс сборки. Я настроил его для встраивания в каталог wwwroot моего основного проекта asp.net, но ядро ​​asp.net не хочет его обслуживать.

Сначала я попытался вернуть html-файл через контроллер. Я попробовал этот маршрут:

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

И тогда в контроллере я возвращаю HTML-файл, как это:

public IActionResult Index()
{
    var webRoot = _env.WebRootPath;
    var path = System.IO.Path.Combine(webRoot, "index.html");

    return File(path, "text/html");
}

Это не сработало. Он возвратил исключение 404 not found и дал путь, но он дал правильный путь к файлу index.html (я вырезал и вставил его в проводник, и файл открылся).

Я также объявляю это при запуске:

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

Затем я попытался удалить маршрут по умолчанию. Теперь я могу получить доступ к файлу index.html, но только если я введу имя файла, т.е.

локальный: 58420 / index.html

Если я пытаюсь получить доступ к корню домена без указанного «index.html», я получаю ошибку 404.

Как правильно ссылаться на index.html как страницу по умолчанию? Я предполагаю, что делать это с контроллера, вероятно, лучше, потому что тогда он будет совместим с угловой маршрутизацией без переписывания.

Ответы на вопрос(5)

Ваш ответ на вопрос