Почему веб-сайт по умолчанию не использует index.html?

Я не могу ввести доменное имя, чтобы увидеть целевую страницу:

http://some_url.com

Ошибка:

Не удалось найти файл 'E:\index.html'.

Тем не менее, следующие работы:

http://some_url.com/index.html

К вашему сведению: этот сайт был создан с использованием Elm, Giraffe и.Net Core.

2 ответа

Решение

Если вы используете Giraffe, значит, вы используете F#, что означает, что у вас есть хорошие шансы IApplicationBuilder для настройки вашего сервера. Вы должны быть в состоянии позвонить UseDefaultFiles, затем UseStaticFiles использовать index.html в качестве документа по умолчанию.

let configureApp (app : IApplicationBuilder) =
    app.UseGiraffeErrorHandler errorHandler
    app.UseDefaultFiles() |> ignore
    app.UseStaticFiles() |> ignore
    app.UseGiraffe webApp

Из обслуживания статических файлов:

UseDefaultFiles должен быть вызван до UseStaticFiles обслуживать файл по умолчанию. UseDefaultFiles перезаписывающий URL, который на самом деле не обслуживает файл Вы должны включить статическое файловое промежуточное ПО (UseStaticFiles) для подачи файла.

Я не указал следующее:

let webApp: HttpHandler = 
    choose [
        GET >=>
            choose [
                route "/" >=> htmlFile "index.html"
Другие вопросы по тегам