Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Haskell 是的,没有路由到处理程序_Haskell_Cabal_Yesod_Haskell Stack - Fatal编程技术网

Haskell 是的,没有路由到处理程序

Haskell 是的,没有路由到处理程序,haskell,cabal,yesod,haskell-stack,Haskell,Cabal,Yesod,Haskell Stack,我正在使用堆栈工具使用搭建的YesSOD(YesSOD 1.4.1.5)应用程序。我找不到新的工作路线 # config/routes /static StaticR Static appStatic /auth AuthR Auth getAuth /favicon.ico FaviconR GET /robots.txt RobotsR GET /trails TrailsR GET / HomeR GET POST 然后我定义了以下模块: -- Ha

我正在使用堆栈工具使用搭建的YesSOD(
YesSOD 1.4.1.5
)应用程序。我找不到新的工作路线

# config/routes
/static StaticR Static appStatic
/auth   AuthR   Auth   getAuth

/favicon.ico FaviconR GET
/robots.txt RobotsR GET

/trails TrailsR  GET

/ HomeR          GET POST
然后我定义了以下模块:

-- Handler/Trails.hs
module Handler.Trails where

import Import
--import Yesod.Form.Bootstrap3 (BootstrapFormLayout (..), renderBootstrap3,
--                              withSmallInput)

getTrailsR :: Handler Html
getTrailsR = defaultLayout $ do
    setTitle "Welcome To Yesod!"
    $(widgetFile "trails")
我创建了跟踪模板文件:

-- templates/trails.hamlet
<h1>All Trails A-Z

<ul>
  <li>Hi
我确保在项目的
onh.cabal
中注册该模块,以下是完整的库节:

library
    hs-source-dirs: ., app
    exposed-modules: Application
                     Foundation
                     Import
                     Import.NoFoundation
                     Model
                     Settings
                     Settings.StaticFiles
                     Handler.Common
                     Handler.Home
                     Handler.Trails
然后我像这样启动应用程序:
stack exec--yesod-devel
,但它仍然没有返回404:

$ curl -v localhost:3000/trails
* Hostname was NOT found in DNS cache
*   Trying ::1...
* connect to ::1 port 3000 failed: Connection refused
*   Trying 127.0.0.1...
* Connected to localhost (127.0.0.1) port 3000 (#0)
> GET /trails HTTP/1.1
> User-Agent: curl/7.37.1
> Host: localhost:3000
> Accept: */*
>
< HTTP/1.1 404 Not Found
< Transfer-Encoding: chunked
< Date: Mon, 31 Aug 2015 05:00:17 GMT
* Server Warp/3.1.2 is not blacklisted
< Server: Warp/3.1.2
$curl-v localhost:3000/台
*在DNS缓存中找不到主机名
*正在尝试::1。。。
*连接到::1端口3000失败:连接被拒绝
*正在尝试127.0.0.1。。。
*已连接到本地主机(127.0.0.1)端口3000(#0)
>GET/trails HTTP/1.1
>用户代理:curl/7.37.1
>主机:localhost:3000
>接受:*/*
>
未找到

我做错了什么?如何调试路由是否正确连接并连接到生成系统?

您可能会受到错误的影响。升级到yesod-bin-1.4.14应该可以解决这个问题。你能试试看它是否有效吗

$ curl -v localhost:3000/trails
* Hostname was NOT found in DNS cache
*   Trying ::1...
* connect to ::1 port 3000 failed: Connection refused
*   Trying 127.0.0.1...
* Connected to localhost (127.0.0.1) port 3000 (#0)
> GET /trails HTTP/1.1
> User-Agent: curl/7.37.1
> Host: localhost:3000
> Accept: */*
>
< HTTP/1.1 404 Not Found
< Transfer-Encoding: chunked
< Date: Mon, 31 Aug 2015 05:00:17 GMT
* Server Warp/3.1.2 is not blacklisted
< Server: Warp/3.1.2