Node.js 自动将资产包括到模板中
我正在使用Node.JS和Express 我的模板层次结构具有:Node.js 自动将资产包括到模板中,node.js,dust.js,Node.js,Dust.js,我正在使用Node.JS和Express 我的模板层次结构具有: 1布局模板-基础模板 1页模板-这是将呈现的模板 可选的部分数-页面模板可能包含这些部分 布局。灰尘(布局模板): {+content}{/content} 主页.dust(页面模板): {>layout/} {sidebar/} {>widget/} {/content} 当用户访问网站主页时,home.dust将被呈现,用户将看到一个带有侧边栏和一些小部件的页面。sidebar.dust和widget.dust的内容
- 1布局模板-基础模板
- 1页模板-这是将呈现的模板
- 可选的部分数-页面模板可能包含这些部分
{+content}{/content}
主页.dust(页面模板):
{>layout/}
{sidebar/}
{>widget/}
{/content}
当用户访问网站主页时,home.dust将被呈现,用户将看到一个带有侧边栏和一些小部件的页面。sidebar.dust和widget.dust的内容无关
正如您在layout.dust中所看到的,head部分包含了4组JavaScript和CSS,每个模板和部分对应一组。我的问题是找到一种方法自动将每个资源包含到布局中(无需硬编码)。理想情况下,我希望能够做到这一点:
{#scripts}
<script src="{.}"></script>
{/scripts}
{#脚本}
{/scripts}
不同的页面可能需要不同的资产
- 如何将每个脚本源路径推送到layout.dust的上下文中李>
- 其他开发人员做什么,他们只是硬编码吗
contrib-uglify
和contrib-concat
处理缩小。还有很多你应该觉得有用的东西。您也可以对所有CSS执行完全相同的操作
显然,在开发过程中,您并不想尝试调试缩小的代码,因此可以执行以下操作:
{?production}
<script src="production-minified-script.js"></script>
{:else}
{#scripts}
<script src="{.}"></script>
{/scripts}
{/production}
为了缩小和连接,我基于uglify js和clean css构建了自己的定制框架。该框架允许我在一条HTTP消息中动态连接多个脚本,我真正的脚本标记看起来更像这样:
我不确定添加像{+otherScripts}{/otherScripts}
这样的块会有什么帮助,我仍然不确定如何将URL推送到上下文中。这里包含多个部分,每个部分都需要将自己的脚本添加到上下文中。
{#scripts}
<script src="{.}"></script>
{/scripts}
{?production}
<script src="production-minified-script.js"></script>
{:else}
{#scripts}
<script src="{.}"></script>
{/scripts}
{/production}
{+otherScripts}{/otherScripts}