我想要在网站范围内包含本地静态Javascript文件。我希望将所有静态Javascript文件合并到一个文件中,但我想分别管理这些文件。静态Javascript文件应该包含在Yesod项目中的哪个位置?
答案 0 :(得分:14)
有一个更具体的解决方案。
'static / js''有一个静态Javascript文件的文件夹。
Javascript有一个更具体的小部件命令:addScript
对于每个静态文件the Static subsite generates a "::Route Static" symbol,替换非标识符字符“/ - ”。文件路径中的'_'来自''static /''。
样品:
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
的文件放到模板目录中,它就会自动包含在所有页面中。