【发布时间】:2012-01-24 23:59:17
【问题描述】:
当我运行“yesod devel”时,它显示“devel.hs: Maybe.fromJust: Nothing
yesod init # created a project bbbb
...
cabal install && yesod devel
...
Registering bbbb-0.0.0...
Starting development server...
Starting devel application
devel.hs: Maybe.fromJust: Nothing
并且网络服务器没有监听端口(我无法在浏览器中打开该站点)
有谁知道如何解决这个问题?
我的环境:
- 是的-0.9.4.1
- Glorious Glasgow Haskell 编译系统,版本 7.0.3
- Mac OS X 10.6.8
这里是 dist/devel.hs,由“yesod init”创建:
{-# LANGUAGE PackageImports #-}
import "bbbb" Application (withDevelAppPort)
import Data.Dynamic (fromDynamic)
import Network.Wai.Handler.Warp
(runSettings, defaultSettings, settingsPort, settingsHost)
import Data.Maybe (fromJust)
import Control.Concurrent (forkIO)
import System.Directory (doesFileExist, removeFile)
import System.Exit (exitSuccess)
import Control.Concurrent (threadDelay)
main :: IO ()
main = do
putStrLn "Starting devel application"
wdap <- (return . fromJust . fromDynamic) withDevelAppPort
forkIO . wdap $ \(port, app) -> runSettings defaultSettings
{ settingsPort = port
, settingsHost = "0.0.0.0"
} app
loop
loop :: IO ()
loop = do
threadDelay 100000
e <- doesFileExist "dist/devel-terminate"
if e then terminateDevel else loop
terminateDevel :: IO ()
terminateDevel = exitSuccess
我上传了 bbbb 目录中的所有文件,Application.hs 是 https://github.com/suztomo/LanguageStudy/blob/master/Haskell/Yesod/bbbb/Application.hs.
【问题讨论】:
-
可以把
devel.hs的内容加进去吗?对我来说,这听起来像是 Yesod 中的一个错误。 -
谢谢,我添加了 dist/devel.hs。
-
天哪;现在它在
Application.hs中看起来像一个问题:) -
withDevelAppPort应该看起来像(将“Webapp”替换为您的基础数据类型):withDevelAppPort = toDyn $ defaultDevelAppWith loader withWebapp; where loader = loadConfig (configSettings Development) { csParseExtra = parseExtra } -
这是
dist/devel.hs文件预期的类型与您的yesod-default或Application.hs版本不匹配。这比它应该的要复杂得多。感谢这个问题,这个问题将在 Yesod 0.10 中修复。