2014-06-17 5 views
0

나는 Yesod 초보자이며 주로 정적 파일로 구성된 웹 사이트를 만들고 싶습니다.Yesod의 정적 파일을 "/"에 붙입니다.

동적 파일을 /에두고 동적 페이지를 /foo에 넣어야합니다.

그래서 나는 static 디렉토리 (예를 들어, 정적/index.html을, 정적/IMG/bar.gif를, 정적/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") 

가 어떻게이 문제를 해결할 수 있다고 주장?

+2

고정 경로가 현재 사례에서'FooR'을 포함하고 있다고 생각하기 때문에 선언 된 경로의 순서를 변경해보십시오. –

답변

5

ms의 코멘트가 정확합니다. FooRStaticR 앞에 넣어야합니다. 또한 중복 검사를 해제해야합니다. 가장 쉬운 방법은 아마도 parseRoutesFile 대신 parseRoutesFileNoCheck을 사용하는 것입니다 (또는 준 첨자를 사용하는 경우 parseRoutes 대신 parseRoutesNoCheck).

+0

그것은 나를 위해 작동합니다. 감사합니다. – user3749167

+0

오류는 없습니다. 그러나'FooR'은 hamlet의 정적 파일을'@ {StaticR resource_foo_css} '로 간주 할 수 없습니다. 나는'/ static/resource/foo.css'을 가지고 있습니다. – user3749167

+0

'staticRoot' 설정이'/ static'으로 설정되었으므로 복구했습니다. – user3749167