一般咱们所作的一些页面,咱们能够从设计图里面看出有一些地方是相同的。例如:头部,底部,侧边栏等等。若是先后端分离时,制做静态页面的同窗,对于这些重复的部分只可以经过复制粘贴到新的页面来,若是页面的数量上去了而中途公共的部分出现要修的地方。不过有上10个页面都用到了这个公共的html
代码。那修改起来不是很麻烦吗?html
一些其余方法好比ifram,import都不够优雅,而且源代码中的不显示的,也就不利于SEOnode
头部:npm
尾部:gulp
对于后端的同窗而言,他们能够经过模版来进行拆分。这样作能够提升html
代码的复用性和可维护性。但对于只是对设计图而制做成静态页面的同窗而言他们,html
没有提供像模版的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-include
:spa
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
,把要用到的header
和footer
给include
进来。
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
代码更加具备维护性和可复用性。