标签: yesod

Yesod devel失败,认为cabal构建成功

我对Haskell相对较新,来自F#(一种微软语言).

我已经从脚手架创建了一个Yesod项目,玩了一下,调整了一些东西,然后它停止工作,这个错误消息(在所有模块成功构建之后):

devel.hs: D:\yesod\projects\test101\dist\build\HStest101-0.0.0.o: unknown symbol `___stginit_test101zm0zi0zi0_HandlerziPage_'
devel.hs: devel.hs: unable to load package `test101-0.0.0'
Exit code: ExitFailure 1
Run Code Online (Sandbox Code Playgroud)

通过直接使用阴谋(cabal build,cabal install,dist\build\test101\test101)我是能够运行应用程序,但是这实在是烦人.

我能做什么?

谢谢!

haskell cabal yesod

2
推荐指数
1
解决办法
301
查看次数

链接到Yesod 0.9.3.2中的静态css

我正在关注yesod wiki上的yesod教程,并点击链接到外部css框架(蓝图)的墙.

我使用脚手架工具创建了网站,到目前为止,所有内容都使用'yesod devel'正常工作.

我已将蓝图文件下载到static/css/blueprint中,并将以下内容添加到default-layout-wrapper.hamlet:

!!!
<html>
    <head
        <title>#{pageTitle pc}
        <link rel=stylesheet type=text/css media=screen href=@{StaticR css_blueprint_screen_css}>
        <link rel=stylesheet type=text/css media=print href=@{StaticR css_blueprint_print_css}>
        ^{pageHead pc}
    <body
        ^{pageBody pc}
Run Code Online (Sandbox Code Playgroud)

我得到的错误是:

Foundation.hs:98:27:
    Not in scope: `css_blueprint_screen_css'
    In the result of the splice:
      $(hamletFile "hamlet/default-layout-wrapper.hamlet")
    To see what the splice expanded to, use -ddump-splices
    In the first argument of `hamletToRepHtml', namely
      `$(hamletFile "hamlet/default-layout-wrapper.hamlet")'
    In the expression:
      hamletToRepHtml
        ($(hamletFile "hamlet/default-layout-wrapper.hamlet"))

Foundation.hs:98:27:
    Not in scope: `css_blueprint_print_css'
    In the result of the splice:
      $(hamletFile "hamlet/default-layout-wrapper.hamlet")
    To see …
Run Code Online (Sandbox Code Playgroud)

yesod

2
推荐指数
1
解决办法
820
查看次数

Yesod javascript格式化

我正在调试在Yesod中生成的一些JavaScript代码.Yesod在一行中生成包含每个函数的javascript文件,这使得无法在函数内设置断点.有没有办法改变这种行为,以便javascript保留格式化调试?

haskell yesod

2
推荐指数
1
解决办法
521
查看次数

yesod中的id属性

在yesod中,我们可以像这样指定class属性:

<div .myclass> ==> <div class="myclass">
Run Code Online (Sandbox Code Playgroud)

是否有id的模拟?例如,类似于:

<div #id> ==> <div id="id">
Run Code Online (Sandbox Code Playgroud)

haskell yesod hamlet

2
推荐指数
1
解决办法
165
查看次数

测试用户是否登录在哈姆雷特模板中

我想测试用户是否经过身份验证,并根据状态显示"登录"或"注销"链接.

到目前为止我有

$maybe muid <- maybeAuthId
    <a href=@{AuthR LogoutR} >Logout
$nothing
    <a href=@{AuthR LoginR} >Login
Run Code Online (Sandbox Code Playgroud)

但是我收到一个错误:

Couldn't match expected type `Maybe v0'
            with actual type `GHandler s0 m0 (Maybe (AuthId m0))'
In the first argument of `Text.Hamlet.maybeH', namely `maybeAuthId'
Run Code Online (Sandbox Code Playgroud)

haskell yesod hamlet

2
推荐指数
1
解决办法
210
查看次数

yesod persistent:从密钥列表中获取实体列表

假设我有fooIds :: [Key Foo].我怎么会得到foos :: [Foo]

我试过了

do
    foos <- map get fooIds
Run Code Online (Sandbox Code Playgroud)

但它给了我

No instance for (MonadBaseControl IO m0)
  arising from a use of `get'
Run Code Online (Sandbox Code Playgroud)

我假设因为我需要使用runDB.但我不太确定如何使用它.

haskell persistent yesod

2
推荐指数
1
解决办法
537
查看次数

Haskell和webframeworks

我开始开发一个应用程序(一些无聊的会计软件供内部使用),并决定将其设置为基于Web的,因为这可以一次性解决几个问题.

现在有几个用于Haskell的webframeworks可供选择(happstack,yesod和snap),我仍然开始感到痛苦,不得不处理HTML,CSS和非常聪明的有线JavaScript.

嗯.

那么我认为可能会尝试使用所有AJAX方式并在CappuccinoSproutCore中执行UI .(SEO不是问题).

但是现在我真的不需要一个完整的Web框架,比如上面三个中的一个,一个可以提供JSON或XML包装的数据的HTTP服务器在理论上应该足够了.

现在还有一点可以使用这三者中的任何一个吗?

最重要的是这种方法的可行性如何?

半滑舌鳎

haskell happstack yesod haskell-snap-framework

2
推荐指数
1
解决办法
837
查看次数

如何更改"yesod devel"使用的设置(例如,端口)?

我知道我可以输入端口号,config/settings.yml但在运行时它们似乎被忽略了yesod devel.

yesod

2
推荐指数
1
解决办法
573
查看次数

由于Alex包装,Yesod平台安装失败

我正在尝试将yesod平台更新到最新版本.为此,我执行了以下命令:

cabal update
cabal install yesod-platform yesod-bin
Run Code Online (Sandbox Code Playgroud)

我最终得到以下错误:

Resolving dependencies...
Configuring language-javascript-0.5.13...
cabal: The program alex version >=3.0.5 is required but the version found at /usr/bin/alex is version 3.0.1
cabal: Error: some packages failed to install:
hjsmin-0.1.4.6 depends on language-javascript-0.5.13 which failed to install
language-javascript-0.5.13 failed during the configure step. The exception was:
ExitFailure 1
yesod-platform-1.2.12.2 depends on language-javascript-0.5.13 which failed to install
yesod-static-1.2.4 depends on language-javascript-0.5.13 which failed to install
Run Code Online (Sandbox Code Playgroud)

经过一番研究后,我偶然发现了以下帖子,其中提到我应该在执行cabal install yesod-platform yesod-bin命令之前手动安装一些依赖项.这些依赖包括alex …

ubuntu haskell cabal cabal-install yesod

2
推荐指数
1
解决办法
530
查看次数

如何安全地打破单片mkYesod块

这个问题更能帮助我理解Yesod而不是其他任何东西.以http://www.yesodweb.com/book/basics为例,特别是mkYesod TH函数生成的代码.

我认为的问题是这个TH生成路由数据类型(数据路由HelloWorld = HomeR)和调用getHomeR等的yesodDispatch函数.

难点在于,在较大的项目中,您不能将getHomeR的定义拆分为单独的模块,因为Haskell的简单模块系统是严格分层的; 因此,如果getHomeR简称getHomeRimplementation这是在另一个模块中定义(比如HomeImplementation),那么该模块将需要导入的定义数据路由的HelloWorld和将有循环依赖关系.

在我看来,如果可以在单独的模块中声明RenderRoute,ParseRouteYesodDispatch实例,则可以避免这种情况; 然后RenderRoute可以位于导入层次结构的底部,而YesodDispatch位于顶部.那有意义吗 ?也许我问这个问题的事实表明我对mkYesod TH 不了解 ; 例如,存在一些重要的相互关系,它们不应该分开.

haskell module hierarchy yesod

2
推荐指数
1
解决办法
121
查看次数