Hakyll 没有更新新路线
Hakyll not updating with new routes
我是第一次尝试使用 Hakyll。按照 the official site 上的教程,我正在尝试扩展路由处理图像以使用字体。我已将 site.hs
中的代码更改为:
match ("images/*" .||. "fonts/*") $ do
route idRoute
compile copyFileCompiler
在 fonts
目录中,我有许多 .ttf
字体文件,它们的权限和所有者与站点的其余静态文件相匹配(所有这些文件都可以正常工作)。
但出于某种原因,在重建站点后(使用 stack exec site rebuild
),这些更新不会反映在二进制文件中,并且到 fonts/*
的路由会导致 404。
如何让 Hakyll 加载字体?
stack exec site rebuild
仅重建站点数据(在目标目录中生成的文件,默认为 _site
)。每当您更改站点源时,您都需要发出 stack build
.
如果您是 运行 watch
服务器,请重新启动它 – stack build
创建一个新的 site
可执行文件,它不会重新启动旧的 运行 实例.
如果您只添加了新规则,则不需要在构建 site
之后执行 site rebuild
,site build
或 site watch
应该会注意到文件丢失在“缓存”中。但是,如果您修改了现有规则,则需要让 Hakyll 知道这些文件不再是最新的。使用 site clean
或 site rebuild
清理站点将强制 Hakyll 对所有内容进行 re-generate。当您的站点很大并且只有很少的文件受更改影响时,您还可以 re-save 它们或更改它们的修改时间(例如使用 touch
命令)以节省时间。
我是第一次尝试使用 Hakyll。按照 the official site 上的教程,我正在尝试扩展路由处理图像以使用字体。我已将 site.hs
中的代码更改为:
match ("images/*" .||. "fonts/*") $ do
route idRoute
compile copyFileCompiler
在 fonts
目录中,我有许多 .ttf
字体文件,它们的权限和所有者与站点的其余静态文件相匹配(所有这些文件都可以正常工作)。
但出于某种原因,在重建站点后(使用 stack exec site rebuild
),这些更新不会反映在二进制文件中,并且到 fonts/*
的路由会导致 404。
如何让 Hakyll 加载字体?
stack exec site rebuild
仅重建站点数据(在目标目录中生成的文件,默认为 _site
)。每当您更改站点源时,您都需要发出 stack build
.
如果您是 运行 watch
服务器,请重新启动它 – stack build
创建一个新的 site
可执行文件,它不会重新启动旧的 运行 实例.
如果您只添加了新规则,则不需要在构建 site
之后执行 site rebuild
,site build
或 site watch
应该会注意到文件丢失在“缓存”中。但是,如果您修改了现有规则,则需要让 Hakyll 知道这些文件不再是最新的。使用 site clean
或 site rebuild
清理站点将强制 Hakyll 对所有内容进行 re-generate。当您的站点很大并且只有很少的文件受更改影响时,您还可以 re-save 它们或更改它们的修改时间(例如使用 touch
命令)以节省时间。