在Yesod项目中包含静态javascript的位置?

时间:2012-11-04 11:08:14

标签: javascript yesod

我想要在网站范围内包含本地静态Javascript文件。我希望将所有静态Javascript文件合并到一个文件中,但我想分别管理这些文件。静态Javascript文件应该包含在Yesod项目中的哪个位置?

2 个答案:

答案 0 :(得分:14)

有一个更具体的解决方案。

样品:

import Yesod.Widget (addScript)

-- given a file path of static/js/my-script.js

addScript $ StaticR js_my_script_js

如果您的项目已部分编译,则可能会出现如下错误:

Foundation.hs:...: Not in scope: `js_my_script_js'

然后

  • unix touch StaticFiles.hs模块,它通过调用staticFiles生成路由符号

  • 或清理您的构建并重建它,它就会消失。

干杯!

您也可以在我的/(您的)wikipedia article上阅读相关内容。随意纠正并完成它。

答案 1 :(得分:2)

您可以在addWidget函数中使用defaultLayout将其添加到窗口小部件,这些窗口小部件合并为一个文件。

例如,

defaultLayout widget = do
    ...
    pc <- widgetToPageContent $ do
        $(widgetFile "mywidget")
        ... other stuff here ...    

    ...

现在,只需将一个名为mywidget.julius的文件放到模板目录中,它就会自动包含在所有页面中。