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

前言

一般咱们所作的一些页面,咱们能够从设计图里面看出有一些地方是相同的。例如:头部,底部,侧边栏等等。若是先后端分离时,制做静态页面的同窗,对于这些重复的部分只可以经过复制粘贴到新的页面来,若是页面的数量上去了而中途公共的部分出现要修的地方。不过有上10个页面都用到了这个公共的html代码。那修改起来不是很麻烦吗?html

一些其余方法好比ifram,import都不够优雅,而且源代码中的不显示的,也就不利于SEOnode

 

头部:npm

尾部:gulp

对于后端的同窗而言,他们能够经过模版来进行拆分。这样作能够提升html代码的复用性和可维护性。但对于只是对设计图而制做成静态页面的同窗而言他们,html没有提供像模版的include这种方法。但又不想使用到后端的模版,那么接下来的我介绍的几个工具也许能够帮助到你。后端

 

gulp-file-include

第一个我要介绍的是一个gulp的插件,他提供了一个include的方法让咱们能够想后端模版同样把公共的部分分离出去。并且提供的include方法有许多配置项,详细能够去看看 gulp-file-include前后端分离

下面咱们写一个小demo来快速的了解一下,咱们须要先安装gulp以及gulp-file-include工具

npm install -g gulp
mkdir gulp-file-include && cd gulp-file-include
npm install  gulp --save-dev
npm install gulp-file-include --save-dev

安装好以后,来简单的组织一下文件的目录:ui

|-node_modules
|-page // 生产环境的 html 存放文件夹
    |-include // 公共部分的 html 存放文件夹
    |-*.html 
|-dist // 编辑后的 html 文件
gulpfile.js

在新建的gulpfile.js,配置好gulp-file-includespa

var gulp = require('gulp');
var fileinclude  = require('gulp-file-include');

gulp.task('fileinclude', function() {
    // 适配page中全部文件夹下的全部html,排除page下的include文件夹中html
    gulp.src(['page/**/*.html','!page/include/**.html'])
        .pipe(fileinclude({
          prefix: '@@',
          basepath: '@file'
        }))
    .pipe(gulp.dest('dist'));
});

接着新建两个html文件,分别是头部和底部:插件

header.html

<h1>这是 header 的内容</h1>

footer.html

<h1>这是 footer 的内容</h1>

最后在新建一个html,把要用到的headerfooterinclude进来。

layout.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    @@include('include/header.html')

    <p> 这是 layout 的内容 </p>

    @@include('include/footer.html')
</body>
</html>

最后回到命令行工具里,执行gulp fileinclude

看到编译完成以后,到dist目录一下有一个layout.html的文件,这就是最后编译出来的。

好了,上面的一个小实例也明白以后。也许可以在之后的工做中大大提供生产力,使得本身写的html代码更加具备维护性和可复用性。

相关文章
相关标签/搜索