莎士比亚剪接在哪里寻找他们的文件



我想让莎士比亚模板启动和运行;特别是文本,哈姆雷特。我有$(shamletFile "HTML/index.hamlet")(见注释),当我编译文件时,我得到一个错误,告诉我文件不存在。因此,我尝试了各种文件路径的组合,试图猜测拼接使用的是哪个工作目录,但没有成功。

莎士比亚剪接在哪里寻找他们的文件?这在什么地方有记录吗?


指出

  1. 这个路径是相对于使用模板的源文件的。
  2. 我没有使用完整的Yesod框架,只是模板引擎。

shamletFile以标准FilePath作为参数,因此根据"当前本地目录"求值。"当前"在模板Haskell评估期间,即编译阶段。正如@arrowd指出的,这通常是主项目目录。

请注意,如果您使用Yesod,这将不再是真的,因为在构建yesod-bin期间,为每个莎士比亚文件添加了templates/前缀(并且它在那里硬编码)。

最新更新