#f# #suave
Вопрос:
Я не понимаю документ, когда дело доходит до обслуживания статических файлов.
У меня есть сайт, на котором серверная часть развернута в /приложение в контейнере docker, а интерфейсная часть развернута в /приложение/интерфейс
Основной файл для интерфейса находится по адресу: /app/frontend/index.html
В конфигурации у меня есть это:
homeFolder = Some "/app/frontend"
и затем:
GET >=> choose
[
path "/healthcheck" >=> Successful.OK "ok"
pathScan "/checkqr/%s" checkQRCode
path "/" >=> Files.file "index.html"
Files.browseHome
]
когда я иду в domain.com Я получаю 404, но когда я иду в domain.com/index.html Я получаю индекс.
что я пропустил с синтаксисом? Я хотел бы служить index.html файл, когда собираетесь domain.com
Тесты, проведенные за это время:
path "/" >=> Files.browse "index.html"
path "/" >=> Files.file "index.html"
path "/" >=> Files.browseFile "/app/frontend" "index.html"
path "/" >=> Files.browseFile "frontend" "index.html"
path "/" >=> Files.sendFile "index.html" true
path "/" >=> Files.file (Files.resolvePath "/app/frontend" "index.html")
path "/" >=> Files.browseFileHome "index.html"
path "/" >=> Files.file "/app/frontend/index.html"
ни один из них не работает.
Я подтвердил, что файл находится по адресу /app/frontend/index.html
Ответ №1:
Files.file
не заглядывает в домашнюю папку, но Files.browseFileHome
делает:
path "/" >=> Files.browseFileHome "index.html"
Я согласен, что документация по этому вопросу очень расплывчата.
Комментарии:
1. К сожалению, я все еще получаю 404
2. Хм, я не знаю, что сказать. Для меня это прекрасно работает. Вы также можете попробовать разрешить путь вручную, например:
path "/" >=> Files.file (Files.resolvePath home "index.html")
, гдеhome
находится строка, содержащая путь к домашней папке.3. Я внес правку со всеми проведенными тестами. Возможно, я неправильно определяю домашнюю папку, но это просто абсолютный путь: /приложение/интерфейс
4. извините, это была моя вина, что новый код не работает, и я потратил день на тестирование старого :/ docker может быть забавным… ваш ответ хорош!