Hakyll не обновляется новыми маршрутами

Я пытаюсь использовать Hakyll впервые. Следуя инструкциям на официальном сайте, я пытаюсь расширить маршрут обработки изображений для работы со шрифтами. Я изменил код в site.hs к этому:

match ("images/*" .||. "fonts/*") $ do
     route idRoute
     compile copyFileCompiler

в fonts каталог, у меня есть ряд .ttf файлы шрифтов, чьи права доступа и владельцы соответствуют остальным статическим файлам сайта (все из которых работают правильно).

Почему-то после перестройки сайта (с stack exec site rebuild), эти обновления не отражаются в двоичном файле, и маршруты к fonts/* результат в 404.

Как я могу заставить Hakyll загружать шрифты?

1 ответ

Решение

stack exec site rebuild перестраивает только данные сайта (файлы, созданные в каталоге назначения, _site по умолчанию). Всякий раз, когда вы меняете источник своего сайта, вам нужно будет выдать stack build,

Если вы управляете watch сервер, перезагрузите его - stack build создает новый site исполняемый файл, он не будет перезапускать старые запущенные экземпляры.

Если вы только добавили новые правила, выполните site rebuild после site был построен не нужно, site build или же site watch следует заметить, что файлы отсутствуют в "кэше". Однако, если вы изменили существующие правила, вам нужно будет сообщить Хэкиллу, что файлы больше не актуальны. Очистка сайта с помощью site clean или же site rebuild заставит Hakyll заново сгенерировать все. Если у вас большой сайт и только несколько файлов затронуты изменением, вы также можете повторно сохранить их или изменить время их изменения (например, используя touch команда), чтобы сэкономить время.

Другие вопросы по тегам