【问题标题】:how to get string from approot(site url)?如何从approot(网站网址)获取字符串?
【发布时间】:2015-07-12 21:42:28
【问题描述】:

我查看了 yesod 教程和源代码,但找不到做这种琐碎事情的方法……我必须使用模式匹配吗?

https://hackage.haskell.org/package/yesod-core-1.2.2/docs/Yesod-Core.html

来源:

-- |如何确定构建 URL 的应用程序的根。 -- -- 请注意,Yesod 的未来版本可能会添加新的构造函数而不会发生碰撞 -- 主要版本号。因此,您应该 /not/ 模式匹配 -- @Approot@ 值。 data Approot master = ApprootRelative -- ^ 没有应用程序根。 | ApprootStatic !文本 | ApprootMaster !(主 -> 文本) | ApprootRequest !(主 -> W.Request -> 文本)

【问题讨论】:

    标签: haskell yesod


    【解决方案1】:

    您是从Yesod.Core.Handler 寻找getUrlRender 还是从Yesod.Core 寻找renderRoute

    【讨论】:

    • renderRoute 仅从 (Route a) 获取相对 url 字符串,但我想获取整个绝对路径..这很容易通过 @{} 符号嵌入到小村庄中......
    • @doofin 这是我用过的(对不起,如果它不适合你的用例):git.gnu.io/snowdrift/snowdrift/blob/master/tests/…git.gnu.io/snowdrift/snowdrift/blob/master/Handler/User.hs#L87 两者都给出了绝对网址。
    • 我看到了:render :: RenderRoute App => Text -> Route App -> Text render appRoot = ((appRoot "/") ) 。 T.intercalate "/" 。 fst 。 renderRoute ,但是在 yesod 类型类中定义的 approot 函数的类型不是 text ..那么你给 render 函数作为第一个参数是什么?我们当然可以定义一个approot字符串,但这应该已经由yesod完成
    • @doofin getUrlRender 获取整个绝对路线。
    猜你喜欢
    • 2021-12-22
    • 2013-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-14
    • 2010-10-28
    • 2011-01-26
    • 1970-01-01
    相关资源
    最近更新 更多