将静态文件放在Yesod的"/"上

use*_*167 0 haskell static-files yesod

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

需要打开静态文件/,然后打开动态页面/foo.

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

/    StaticR Static getStatic
/foo FooR    GET    POST
Run Code Online (Sandbox Code Playgroud)

Ghc声称

Exception when trying to run compile-time code:
 Overlapping routes: 
("StaticR","FooR")
Run Code Online (Sandbox Code Playgroud)

我该如何解决这个问题?

Mic*_*man 5

ms的评论是正确的:你应该把它放在FooR前面StaticR.此外,您还需要关闭重叠检查.最简单的方法可能是使用parseRoutesFileNoCheck而不是parseRoutesFile(或者parseRoutesNoCheck代替parseRoutes你使用quasiquoter).