如何在单独包中的子网站中访问环境变量?

时间:2015-04-01 16:13:55

标签: haskell yesod

我的Yesod子网站需要编写一些相对于应用程序根目录的文件。

Looking at this,看来脚手架的Yesod网站已经完成了大部分的管道工作,但是如何在不了解App记录的子网站中访问它?

approot本身在scaffolded Yesod项目中定义,使用对appSettings的引用,也是 App的元素:

approot = ApprootMaster $ appRoot . appSettings

是否有一个函数可以为我提供应用程序根目录(或至少是根目录的有效文件路径)而无需了解实现细节?当然,能够重用现有的Yesod功能是最好的。

1 个答案:

答案 0 :(得分:2)

如果不知道主站点本身的类型,则无法访问主站点的字段,这通常会破坏拥有子站点的目的。您的典型选择是:

  1. 使您正在寻找子网站的明确参数的数据
  2. 需要一个额外的类型类约束,主站点必须是一个实例,从主站点获取数据
  3. yesod-static是前一种方法的一个很好的例子; yesod-auth是后者的一个例子。