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

时间:2016-08-12 19:52:29

标签: haskell filepath shakespeare-text

我正在尝试让莎士比亚模板运行起来;特别是Text.Hamlet。我有$(shamletFile "HTML/index.hamlet")(见注释),当我编译文件时,我收到一个错误,告诉我该文件不存在。所以我尝试了各种文件路径组合,试图猜测拼接使用的工作目录,但没有成功。

莎士比亚拼接在哪里寻找他们的档案?这是在某处记录的吗?

备注

  1. 此路径与使用模板的源文件相关。
  2. 我没有使用完整的Yesod框架,只使用模板引擎。

1 个答案:

答案 0 :(得分:1)

shamletFile采用标准FilePath作为参数,因此针对“当前本地目录”进行评估。模板Haskell评估期间的“当前” - 即编译阶段。正如@arrowd所指出的,这通常是主项目目录。

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