基础支持 - 合并html头尾 ¶

作者:KK

发表日期:2016.6.23

合并头尾的模块其实也有只是没有我心仪的,所以自己做了一个gulp插件叫gulp-layout,我暂时还没发布到npm上所以麻烦你手动下载安装,下载地址是 http://pan.baidu.com/s/1qYN8fnu

下载后解压到项目的node_modules下就算是将模块安装完成了

先编写头部和尾部代码 ¶

在前端src代码目录下创建一个_common目录,里面再建一个layout.html的文件(默认要是UTF-8无BOM格式),里面写上这样的代码:

网站

导航1

导航2

导航3

{{content}}

关于谁? 粤ICP备1234号? 电话110你打不打过来?

接下来到调用代码示例 ¶var layout = require('gulp-layout');

gulp.src('./src/**/**.html')

.pipe(layout.run())

.pipe(gulp.dest('./dist'));

于是当你在src/index.html里写随便几个字符后,就会在dist/index.html里产生带有头部尾部的代码内容了

那其实插件原理很明显,就是将src/index.html里的内容读取出来后,替换掉src/_common/layout.html里的{{content}}这部分再部署到dist目录下就好了

*注意:除了_common/layout.html,默认其它所有html文件在修改时都会和layout.html合并

不同文件使用不同的layout ¶

虽然网站通常都有共同的头部和尾部,但也有时候是某一模块用另一套头部和尾部的,这里插件也可以支持,上代码:

var layout = require('gulp-layout');

layout.config({

layouts : [

{

layoutFile : '_common/layout2.html',

files : [

'login.html',

'center.html',

'register.html'

]

}

]

});

gulp.src('./src/**/**.html')

.pipe(layout.run())

.pipe(gulp.dest('./dist'));

其实就是执行config方法说明3个文件要使用_common/layout2.html,另外当然还要创建layout2.html啦,其中你可以不用_common目录,自己另外设一个比如my-layouts/layout2.html也可以

以上config执行后,只有login.html、register.html和center.html三个文件会合并到_common/layout2.html,其它未声明的文件都会默认合并到_common/layout.html

多套文件多套layout ¶layout.config({

layouts : [

{//第一套layout配置

layoutFile : '_common/layout1.html',

files : [

'login.html',

'center.html',

'register.html'

]

},

{//第二套layout配置

layoutFile : '_common/layout2.html',

files : [

'friend/list.html',

'goods/card/pay.html'

]

},

{//第三套layout配置

layoutFile : 'layoutPathXX/layout3.html',

files : [

'qqq.html',

'xxx.html',

'yyy.html',

'zzz.html'

]

}

]

});

这神马意思?我想你懂的,那其它没声明的都用_common/layout.html的了,其中所有layout文件被编辑时都不会合并,因为它们自身就是layout,还找谁合并呢对吧?

反之,如果

layout.config({

layouts : [

{

layoutFile : '_common/layout.html', //注意这个路径,不就是默认那个layout文件吗

files : [

'login.html',

'center.html',

'register.html'

]

}

]

});

这样也只有这三个页面用_common/layout.html了,其它页面都不会使用layout

只要个别文件不需要layout ¶

通常还有一种情况就是一些活动页面或者特殊的页面是没有公共的头尾的,这只这些页面是个性化的独立页面,配置办法就是

layout.config({

layouts : [

{

layoutFile : '', //这里设空

files : [

'login.html',

'center.html',

'register.html'

]

}

]

});

于是就变成了只有这三个页面不用layout,而其它页面全部会默认查找_common/layout.html去合并

自定义源代码目录 ¶

以上都是基于前端源代码在src目录下的,这是一个默认的状态,其实可以自定义其它源代码目录,配置方法是:

layout.config({

workingPath : './src2'

});

这默认会去查找./src2/_common/layout.html了

自定义文件编码 ¶

本文开头说过layout文件默认使用UTF-8无BOM格式,要修改的话则是:

layout.config({

charset : 'gbk'//默认是 utf8

});

html调用头尾html,合并html头尾 - 基础支持 - 用gulp搭建前后分离的开发环�? - KK的小故事...相关推荐

  1. HTML页面查看world等文件,网页文件 - HTML - 网页基础 - KK的小故事

    HTML - 网页文件 ¶作者:KK 发表日期:2016.01.26 学习本章节前你需要准备以下知识/技能: 使用 Chrome 浏览器/火狐浏览器来测试练习代码,如果用360极速浏览器或QQ浏览器等 ...

  2. php说明代码怎么写,代码怎么写 - 起步 - PHP基础 - KK的小故事

    起步 - 代码怎么写 ¶ 作者:KK 发表日期:2016.3.9 要写PHP代码就需要建立.php后缀的文件,并且在文件里要以<?php 具体代码 ?>这样的形式来书写PHP代码 我们在网 ...

  3. C++调用ffmpeg批量合并bilibili缓存视频

    文章目录 前言 一.先看效果 二.开始写代码 1.遍历文件 2.获取视频标题和视频名称 3.生成视频 4.主函数 总结 前言 手机bilibili缓存了很多视频,想导入电脑看,但发现缓存的视频被分割成 ...

  4. GitChat · 人工智能 | 如何零基础用 Keras 快速搭建实用深度学习模型

    GitChat 作者:谢梁 原文: 如何零基础用 Keras 快速搭建实用深度学习模型 关注微信公众号:GitChat 技术杂谈 ,一本正经的讲技术 [不要错过文末活动] 前言 在这篇小文章中,我们将 ...

  5. C语言零基础入门——1.基础知识与环境搭建。

    C语言零基础入门--1.基础知识与环境搭建. 好了.终于迎来了第一篇文章,这篇文章要做的事情非常简单,主要有三个事情 ​ 第一:C语言的介绍. ​ 第二:计算机的基础知识. ​ 第三:C语言的环境安装 ...

  6. Android零基础入门第65节:RecyclerView分割线开发技巧

    2019独角兽企业重金招聘Python工程师标准>>> 在上一期通过简单学习,已经领略到了RecyclerView的灵活性,当然都是一些最基础的用法,那么本期一起来学习Recycle ...

  7. ETH:Windows搭建ETH(区块链技术)利用Web端和小程序端两种方式调用ETH上的SC智能合约

    ETH:Windows搭建ETH(区块链技术)利用Web端和小程序端两种方式调用ETH上的SC智能合约 目录 1.Geth安装.配置文件.与ETH节点交互 1.1.下载并安装好geth客户端 1.2. ...

  8. 循序渐进linux——基础知识、服务器搭建、系统管理、性能调优、集群应用_第四讲,Proxmox部署与应用...

    大家好!今天小编继续给大家介绍Ceph存储系统第四讲<Proxmox部署与应用>.在前几讲给大家介绍了Ceph存储系统基础知识,大家应该已经对Ceph有个大概了解,当然了解归了解,在实际工 ...

  9. MyBatis 架构分层与模块划分-基础支持层

    最后一个就是基础支持层.基础支持层主要是一些抽取出来的通用的功能(实现复用),用来支持核心处理层的功能.比如数据源.缓存.日志.xml 解析.反射.IO.事务等等这些功能. 这个就是MyBatis 的 ...

最新文章

  1. Leetcode题库 119.杨辉三角(单数组迭代 C实现)
  2. python axis 0_Python之NumPy(axis=0/1/2...)的透彻理解
  3. 重新定义旅游网站,米胖新版发布
  4. windows10中远程访问凭据不工作
  5. 挖孔屏设计!Moto G8高清渲染图曝光:“奥利奥”摄像头消失
  6. [BZOJ 3028]食物(生成函数)
  7. 一条mysql语句判断是添加还是修改
  8. 基于raspbian+motion的家庭监控网络
  9. bib config_配置config.bib的注意事项以及错误分析——自己都要顶!
  10. Python中路径的写法
  11. nginx events 模块配置
  12. Techo TVP物联网开发者峰会青润的总结
  13. 《人工智能学家》启动2016世界人工智能智商测试,原理和方法
  14. 【官方教程】使用Quick-Cocos2d-x搭建一个横版过关游戏(六)
  15. Bootstrap的iCheck插件checkbox和radio
  16. AquaCrop_原理学习笔记01:AquaCrop模型简介
  17. 基于Flask的文章内容管理系统(CMS)
  18. docker_mysql
  19. [ICCV 2017] Predicting Visual Exemplars of Unseen Classes for Zero-Shot Learning
  20. dnf服务器维护中 启动游戏失败,dnf1月29日启动游戏失败怎么办 dnf提示客户端版本非法解决方法...

热门文章

  1. 7个最好的Java机器学习开发库
  2. 移动APP性能测试指标
  3. Android面试必问!记录下我磕磕碰碰的三个月找工作经历,面试心得体会
  4. 十年的征程 - 人类探测器今日首次软着陆彗星:选定J点登陆
  5. 一起来看看,除夕夜有哪些走心的文案?
  6. 带pcb板的c语言实验报告,pcb实验报告.doc
  7. SIGIR2020推荐系统论文聚焦
  8. 【网单服务端】神鬼世界一键安装服务端双镜像优化版网游单机
  9. 数据结构和算法学习网站
  10. 搞定计算机网络的常见面试问题