【问题标题】:Yesod conditional subsiteYesod 条件子站点
【发布时间】:2014-08-01 21:11:16
【问题描述】:

我想创建我的 Yesod 网站的一部分,只有在存在某些配置设置时才应启用该部分。所以我有这样的事情(省略细节):

data MasterData = MasterData
  { subData :: Maybe SubData
  }

data SubData = SubData { ... }

mkYesodData "SubData" [parseRoutes| ... |]

mkYesodData "MasterData" [parseRoutes|
  /sub SubsiteR SubData getSubData
|]

如果subDataNothing,我怎样才能让我的网站为所有以/sub 开头的网址返回HTTP 404?

【问题讨论】:

    标签: haskell yesod


    【解决方案1】:

    一种方法是围绕Maybe 创建一个新类型包装器,它提供YesodSubDispatch 的实例,并让它在其参数为Nothing 时返回404。

    结果证明这是一个有趣的子网站练习;你可以view the code as a Gist。一个技巧是,当您链接到该子站点时,您需要使用 OptionalRoute 包装您的构造函数。

    【讨论】:

      猜你喜欢
      • 2015-06-30
      • 2015-08-02
      • 1970-01-01
      • 2016-11-02
      • 2014-04-19
      • 1970-01-01
      • 2014-06-04
      • 2015-07-27
      • 2018-01-23
      相关资源
      最近更新 更多