(新手提醒)
鉴于以下错误消息,获取错误源的最快方法是什么:
08/Jul/2016:11:39:01 +0530 [Error#yesod-core] expected EPlain but got Nothing for: DerefBranch (DerefIdent (Ident "show")) (DerefString "abcdef") @(yesod_3MCr4WfhviiELXmo3fAaXL:Yesod.Core.Class.Yesod ./Yesod/Core/Class/Yesod.hs:625:5)
GET /
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Status: 500 Internal Server Error 0.054158s
Handler/Home.hs:38:11:
No instance for (Text.Julius.ToJavascript String)
arising from a use of ‘Text.Julius.toJavascript’
In the second argument of ‘(GHC.Base..)’, namely
‘Text.Julius.toJavascript’
In the second argument of ‘(GHC.Base..)’, namely
‘(Text.Julius.unJavascript GHC.Base.. Text.Julius.toJavascript)’
In the expression:
Text.Shakespeare.EPlain
GHC.Base..
(Text.Julius.unJavascript GHC.Base.. Text.Julius.toJavascript)
Build failure, pausing...
我正在使用一个简单的脚手架网站(没有数据库),故意搞砸了homepage.julius.在这个特定的实例中,我确切地知道错误是什么,但是如何通过查看错误消息才能知道?
最佳答案 在仔细阅读
http://hackage.haskell.org/package/shakespeare-2.0.8/docs/Text-Julius.html后,看起来你正试图在需要javascript的东西中嵌入一个普通的字符串.
这通常是被阻止的,这样当你试图只显示他们提供的字符串时,有人不能将错误的代码注入页面.所以只需要调用rawJS就可以嵌入它?或者您可能正在使用错误的插值类型来提供您提供的变量(@,^或#). Yesod特别关注这一点.
这只是一个猜测因为我不使用julius.