将静态文件放在Yesod的“/”上

时间:2014-06-17 15:37:51

标签: haskell yesod static-files

我是Yesod的初学者,想要建立一个主要使用静态文件构建的网站。

需要在/上放置静态文件,在/foo上放置动态页面。

所以我在static目录中准备了静态文件 (例如,static / index.html,static / img / bar.gif,static / css / baz.css,...),  并写下config/routes如下:

/    StaticR Static getStatic
/foo FooR    GET    POST

Ghc声称

Exception when trying to run compile-time code:
 Overlapping routes: 
("StaticR","FooR")

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:5)

ms的评论是正确的:您应该在FooR之前加StaticR。此外,您还需要关闭重叠检查。最简单的方法可能是使用parseRoutesFileNoCheck而不是parseRoutesFile(或parseRoutesNoCheck而不是parseRoutes,如果您使用的是quasiquoter)。