如何在Keystone JS/Pug中按指定视图条件加载JS文件?
在Keystone JS中针对特定视图条件加载脚本
当然可以实现啦!你想要仅在特定视图(比如"post"视图)中加载脚本的需求,在Keystone JS里完全能做到,思路和你根据用户权限加载脚本的逻辑类似,只是把判断条件换成了当前视图的标识信息。
在Keystone的模板(比如你用的Pug模板)中,渲染视图时会把当前的view对象传入模板上下文,你可以通过这个对象的属性来判断是否是目标视图。这里给你几种实用的实现方式:
匹配视图路径:最直接的方式是检查当前视图的路径,比如post管理视图的列表页路径通常是
/keystone/post,单个post的编辑页路径是/keystone/post/:id,你可以这样写:// 仅匹配post列表视图 if view && view.path === '/keystone/post' script(src='myscript.js') // 匹配所有post相关视图(包括列表页和单个编辑页) if view && view.path.startsWith('/keystone/post') script(src='myscript.js')匹配视图名称:如果你的Keystone版本支持
view.name属性,也可以直接判断视图名称,这比路径更直观:if view && view.name === 'post' script(src='myscript.js')
需要注意的是,不同版本的Keystone可能在view对象的属性细节上略有差异,如果你不确定view对象里有哪些可用属性,可以在模板里临时输出JSON.stringify(view)来查看具体内容,这样就能精准找到适合的判断条件啦。
内容的提问来源于stack exchange,提问作者d-cmst
相关产品推荐
相关产品推荐

