1

我有一个yesod 1.4.1.5使用堆栈工具的脚手架 yesod ( ) 应用程序。我找不到新的上班路线。

# 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

我没有创建.julius.lucius文件。这有关系吗?

我确保将模块放入Application.hs

-- Import all relevant handler modules here.
-- Don't forget to add new modules to your cabal file!
import Handler.Common
import Handler.Home
import Handler.Trails

我确保在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

我究竟做错了什么?如何调试路由是否正确连接并连接到构建系统?

4

1 回答 1

1

您可能会受到邮件列表中描述的错误的影响。升级到 yesod-bin-1.4.14 应该可以解决这个问题。你可以试试看它是否有效?

于 2015-08-31T09:15:37.357 回答