我是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")
我该如何解决这个问题?
答案 0 :(得分:5)
ms的评论是正确的:您应该在FooR
之前加StaticR
。此外,您还需要关闭重叠检查。最简单的方法可能是使用parseRoutesFileNoCheck
而不是parseRoutesFile
(或parseRoutesNoCheck
而不是parseRoutes
,如果您使用的是quasiquoter)。