Grunt或其他前端构建工具中,是否有合并HTML的功能?

发布于 2022-08-29 23:58:30 字数 614 浏览 17 评论 0

一个项目中,可能存在若干重复的 html components,为了统一修改,我可能需要把它们提取出来,如

<!-- _header.html -->
<header>
    <h1>logo</h1>
    <div class="search">
      <input type="text">
      <button type="submit">search</button>
    </div>
</header>
<!-- _footer.html -->
<footer>
    <p>copyright 2012-2014</p>
</footer>

如果有服务器环境,如nginx,可以通过配置SSI来解析;或者通过php等动态服务器端语言进行解析。

那么问题来了,如果我仅仅是想要把这个项目(静态)构建入前端demo库里,我如何把这些html components合并到引用它的各个页面里呢?grunt是否有相应的插件?谢谢!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(9

演多会厌 2022-09-05 23:58:30

你可以使用一种模板语言,比如 handlebars,然后使用某个能够静态的在 grunt 任务里直接把模板编译成 html 的插件,比如 grunt-static-handlebars

如果想让前端可以动态的载入模板,也推荐使用 handlebars,然后使用 grunt-browserifyhbsfy 这两个插件结合一段极度简单的客户端的 js 代码就能很优雅的解决这个问题。

客户端代码:

var template = require('./path/to/template.hbs');
document.getElementById('target-node').innerHTML = template({/* context */});
甜味超标? 2022-09-05 23:58:30

任何一种模板都应该很容易实现, 你也可以用一下f2e-server

月亮是我掰弯的 2022-09-05 23:58:30

任何一种模板语言都可以做到

缱绻入梦 2022-09-05 23:58:30

在 GitHub 里找到了一个我可能需要的工具:

grunt-include-replace

但这样做,在构建之前,前端重构的时候却很难处理,可能需要借助nodejs写个服务器端渲染插件吧!应该是有解决办法的!

https://github.com/alanshaw/grunt-include-replace

风苍溪 2022-09-05 23:58:30

有个html2js的npm模块。在angular中 比较常用,你可以google下。有兴趣也可以看下我弄的一个适合小项目的模块生成器,看看里面的grunt是怎么写的。http://www.cnblogs.com/wuya16/

莫言歌 2022-09-05 23:58:30

直接用jade编译成html

最单纯的乌龟 2022-09-05 23:58:30

可以试试jade的include

兲鉂ぱ嘚淚 2022-09-05 23:58:30

用gulp很容易做到,写个插件分分钟就搞定了。读取页面内容=>解析引用语句=>得到引用路径=>读取引用文件=>替换引用语句。

掌心的温暖 2022-09-05 23:58:30

最后,我用的"grunt-contrib-concat": "~0.1.1"来进行文件的合并,这个不仅可以合并js还可以合并其他类型的文件。大家可以试试!

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文