通过 widgetFile 在 Julius 中进行 Yesod 路由插值
Yesod route interpolation in Julius via widgetFile
我认为 @{SomeRouteR}
应该在 .julius
文件中工作,如以下所述:
https://www.yesodweb.com/book/shakespearean-templates#shakespearean-templates_julius_javascript
当我第一次在我的处理程序中使用它时,一切正常:
toWidget [julius|
$("#examplespan").click(function(){
$.ajax({
url: @{ExampleR},
type: "POST",
...
|]
但现在我已经将 Handler 更改为这样工作:
$(widgetFile "example")
我在 example.julius
中添加了这段代码:
$("#examplespan").click(function(){
$.ajax({
url: @{ExampleR},
type: "POST",
...
我现在得到错误:
[Error#yesod-core] expected EUrl but got Nothing for: DerefIdent (Ident "ExampleR")
CallStack (from HasCallStack):
error, called at ./Text/Shakespeare.hs:441:27 in shakespeare-2.0.20-3iMfZ8A5DXH3Twhu6IoWNc:Text.Shakespeare @(yesod-core-1.6.9-7g4SwkDmJJ261rdNBKrLzX:Yesod.Core.Class.Yesod ./Yesod/Core/Class/Yesod.hs:662:5)
我做错了什么?
这里可能没有任何问题。我将复制我之前为我的公司写的故障排除说明。
模板文件中的 DerefBranch 错误
I made a change in a template ({*.hamlet,*.cassius,*.lucius,*.julius}
) and I get an error like this:
\"rawJS\")) (DerefBranch (DerefIdent (Ident \"tshow\")) (DerefIdent (Ident
\"errors\")))\nCallStack (from HasCallStack):\n error
这是 [我相信] 模板 Haskell 和我们编译方式的问题。也许是一些 GHC 标志,也许是 GHCi 本身,我不确定。
您可以通过触摸引用模板的文件来解决此问题,例如,如果您的模板文件是 templates/foo.julius
,并且您使用 $(widgetFile "foo")
引用它] 在 Handler.Foo
模块中,然后触摸(或从您的编辑器中保存)src/Handler/Foo.hs
文件并重新加载 GHCi。
我认为 @{SomeRouteR}
应该在 .julius
文件中工作,如以下所述:
https://www.yesodweb.com/book/shakespearean-templates#shakespearean-templates_julius_javascript
当我第一次在我的处理程序中使用它时,一切正常:
toWidget [julius|
$("#examplespan").click(function(){
$.ajax({
url: @{ExampleR},
type: "POST",
...
|]
但现在我已经将 Handler 更改为这样工作:
$(widgetFile "example")
我在 example.julius
中添加了这段代码:
$("#examplespan").click(function(){
$.ajax({
url: @{ExampleR},
type: "POST",
...
我现在得到错误:
[Error#yesod-core] expected EUrl but got Nothing for: DerefIdent (Ident "ExampleR")
CallStack (from HasCallStack):
error, called at ./Text/Shakespeare.hs:441:27 in shakespeare-2.0.20-3iMfZ8A5DXH3Twhu6IoWNc:Text.Shakespeare @(yesod-core-1.6.9-7g4SwkDmJJ261rdNBKrLzX:Yesod.Core.Class.Yesod ./Yesod/Core/Class/Yesod.hs:662:5)
我做错了什么?
这里可能没有任何问题。我将复制我之前为我的公司写的故障排除说明。
模板文件中的 DerefBranch 错误
I made a change in a template (
{*.hamlet,*.cassius,*.lucius,*.julius}
) and I get an error like this:\"rawJS\")) (DerefBranch (DerefIdent (Ident \"tshow\")) (DerefIdent (Ident \"errors\")))\nCallStack (from HasCallStack):\n error
这是 [我相信] 模板 Haskell 和我们编译方式的问题。也许是一些 GHC 标志,也许是 GHCi 本身,我不确定。
您可以通过触摸引用模板的文件来解决此问题,例如,如果您的模板文件是 templates/foo.julius
,并且您使用 $(widgetFile "foo")
引用它] 在 Handler.Foo
模块中,然后触摸(或从您的编辑器中保存)src/Handler/Foo.hs
文件并重新加载 GHCi。