gulp将header/footer引入页面

前言:在写静态页面的时候,公共的头部和底部or侧边栏一样,每写一个页面,都要复制粘贴,每当修改后,还要对原先的header、footer修改,这及其麻烦;不更新,部分效果又看不到影响总体效果。

解决:用gulp的插件可以将header、footer、sidebar的静态页面引入每一个需要的页面,只需要写一段注释,编译时,会在注释内将header、footer、sidebar模板页面插入。比如:

替换后每次修改,每个引入的页面都会修改

需要用到的模块有:gulp、fs、gulp-replace这三个,一个task如图:

共有三个模板页面引入,需要增加可以再添加pipe

首先利用fs模块来读取目标目录下的文件,我这里是srcPath.htmlroot,这是源文件的html的root,然后遍历各个文件,把文件中的占位符<!--header--><!--headerend-->和<!--footer--><!--footerend-->分别替换为header.html和footer.html中的内容,最后在输出到原目录下就OK了。

为什么要用replace替换占位符的方式,而不用concat直接把内容给追加到页面呢?这是考虑到gulp任务可能执行多次的情况,重复追加内容无法控制,所以用正则匹配替换内容的方式,无论任务执行多少次都不会重复追加内容。

事实上,为了能够让header、footer模板修改的时候,其他页面也能自动更新内容,我们可以再加一个watch任务:

将html加入监听中,每次修改后,都会生成新的html,header、footer、sidebar修改后,对应的html也会被修改

时间: 2024-10-26 09:06:21

gulp将header/footer引入页面的相关文章

利用gulp解决前后端分离的header/footer引入问题

在我们进行前后端完全分离的时候,有一个问题一直是挺头疼的,那就是公共header和footer的引入.在传统利用后端渲染的情况下,我们可以把header.footer写成两个单独的模板,然后用后端语言的include即可在其他页面中引入.我之前在<一个简单粗暴的前后端分离方案>这篇文章中说过一种方法,就是用handlebars把header.footer模板预编译为js文件,然后在页面的头部用document.write写到页面中.这种方式的弊端也比较明显,那就是依赖一个模板引擎.在使用mvv

html 引入页面公共部分(header、footer)

html引入页面的公共部分,比如导航栏啊,页头页脚之类的. 1.将需要引入的公共html部分转换为js文件,这里推荐一个转换工具地址 http://tool.chinaz.com/Tools/Html_Js.aspx 2.在html页面引入这个js文件就可以了 原文地址:https://www.cnblogs.com/mica/p/10709098.html

解决header,footer等HTML5标签在IE(IE6/IE7/IE8)无效的方法

HTML5的语义化标签以及属性,可以让开发者非常方便地实现清晰的web页面布局,加上CSS3的效果渲染,快速建立丰富灵活的web页面显得非常简单. HTML5的新标签元素有: <header>定义页面或区段的头部: <footer>定义页面或区段的尾部: <nav>定义页面或区段的导航区域: <section>页面的逻辑区域或内容组合: <article>定义正文或一篇完整的内容: <aside>定义补充或相关内容: 使用他们能让代码

footer 置于页面底部的不解

网上关于如何将 footer 置于页面底部的文章太多了,我也照着做了几个,但效果不理想,总是有各种各样的问题. 一般的原理都是将 footer 的相对于包含元素绝对定位,而包含元素的高度为百分比. 原理很清晰,但我总是看不懂那些案例的代码. 我试着按照这个原理,自己写了一个,发现在 Chrome 39 和 IE11 下都能正常运作. HTML: <body>...<div class="wrapper"> </div> <footer>.

在布局中添加头尾框(Header/Footer)

效果如下: 源码: <!DOCTYPE html> <html> <head> <title>Header/footer</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> <meta http-equiv="X-UA-Compatible" content="

前后端分离中,Gulp实现头尾等公共页面的复用

前言 通常我们所做的一些页面,我们可以从设计图里面看出有一些地方是相同的.例如:头部,底部,侧边栏等等.如果前后端分离时,制作静态页面的同学,对于这些重复的部分只能够通过复制粘贴到新的页面来,如果页面的数量上去了而中途公共的部分出现要修的地方.不过有上10个页面都用到了这个公共的html代码.那修改起来不是很麻烦吗? 一些其他方法比如ifram,import都不够优雅,并且源代码中的不显示的,也就不利于SEO 头部: 尾部: 对于后端的同学而言,他们可以通过模版来进行拆分.这样做可以提高html

[Android Bug] ListView中Header, Footer无法隐藏(gone)的问题

ListView中Header.Footer View应该是会应该遇到, 比如说,滚动到底部时,自动开始加载: 对于一些应用市场,会在Header中加上ViewFlipper做应用推荐(滚动的那种,好像很不少市场都有这个功能). 添加时一般大家都会做如下处理: [java] view plaincopyprint? ListView listView = xxxx; listView.addHearderView(item_head); listView.setAdapter(adapter);

HTML的footer置于页面最底部

vue项目中,使用element-ui的布局,仍然出现footer不固定页面底部的情况,网上找到的一个管用的 方法是:footer高度固定+绝对定位 <html> <head> </head> <body> <div class="header">header</div> <div class="main">main content</div> <div class

【转】 jquery easyui Tab 引入页面的问题

原地址:http://blog.csdn.net/superdog007/article/details/8225518 jQuery Easyui 的tabs插件有两种方式加载某个tab(标签页)上的内容:“href远程请求”和“content本地内容”,本文就两种方式的优缺点进行简单分析和思考. 两者特点: href方式加载数据的特点: 被加载的页面只有body元素内部的内容才会被加载,也就是jQuery的ajax请求的只是html片段. 加载远程url时有遮罩效果,也就是“等待中……”效果