2

我第一次尝试使用 Hakyll。按照官方网站上的教程,我正在尝试扩展处理图像的路线以使用字体。我已将代码更改为site.hs

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

fonts目录中,我有许多.ttf字体文件,它们的权限和所有者与站点的其余静态文件相匹配(所有这些都正常工作)。

但由于某种原因,在重建站点后(使用stack exec site rebuild),这些更新不会反映在二进制文件中,并且会fonts/*导致 404。

如何让 Hakyll 加载字体?

4

1 回答 1

4

stack exec site rebuild仅重建站点数据(_site默认情况下,在目标目录中生成的文件)。每当您更改站点来源时,您都需要发出stack build.

如果您正在运行watch服务器,请重新启动它——stack build创建一个新的site可执行文件,它不会重新启动旧的运行实例。

如果您只添加了新规则,则不需要在构建site rebuild后执行,或者应该注意到“缓存”中缺少文件。但是,如果您修改了现有规则,则需要让 Hakyll 知道文件不再是最新的。使用or清理站点会迫使 Hakyll 重新生成所有内容。当您的站点很大并且只有少数文件受更改影响时,您还可以重新保存它们或更改它们的修改时间(例如使用命令)以节省时间。sitesite buildsite watchsite cleansite rebuildtouch

于 2017-01-23T01:48:04.637 回答