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
команда), чтобы сэкономить время.