前两篇介绍了入门相关知识及对keystonejs整体可用性评估,这篇介绍下开始实际运用中的页头页脚部分,因为马上项目忙了,这个先匆匆的作个收尾。

不管是用WordPress还是其他CMS系统,应用最宽泛的也是最基础的就是企业宣传类网站,我们就讲下keystonejs实现的头尾改造,效果如下图:
PC页头

PC页脚

移动页头

移动页脚

具体改造也很简单,首先找到H:workspacekeystonejs-projectroutesmiddleware.js文件,然后增加navLinksCN代码如下:

exports.initLocals = function(req, res, next) {
res.locals.navLinks = [
{ label: 'Home', key: 'home', href: '/' },
{ label: 'Blog', key: 'blog', href: '/blog' },
{ label: 'Gallery', key: 'gallery', href: '/gallery' },
{ label: 'Contact', key: 'contact', href: '/contact' },
];
res.locals.navLinksCN = [
{ label: '首页', key: 'home', href: '/' },
{ label: '新闻动态', key: 'blog', href: '/blog' },
{ label: '作品展示', key: 'gallery', href: '/gallery' },
{ label: '联系我们', key: 'contact', href: '/contact' },
];
res.locals.user = req.user;
next();
};

然后找到H:workspacekeystonejs-projecttemplateslayoutsdefault.pug文件,复制一份,改名如main.pug,接下来就是具体的HTML+CSS部分了。

  • 在site.css下方再引入我们自定义的样式文件如:link(href="/styles/style.css", rel="stylesheet")
  • 添加header代码,如:
        //- HEADER
div(style='width:100%') //- Customise your site's navigation by changing the navLinks Array in ./routes/middleware.js
//- ... or completely change this header to suit your design. .box1#head
.navBox
.mabox
.weima
img(src='../images/ma.jpg')
a.nav-left(href='index')
img(src='../images/logo.svg')
.nav-right
div
a.weibo(href='',target='_blank')
a.weixin
a.gouwuche(href='',target='_blank')
.nav-center ul.menu
each link in navLinksCN
li(class=(section == link.key ? 'active' : null)): a(href=link.href)= link.label nav(role='navigation').navbar.navbar-default
.container-fluid
.navbar-header.text-right
button(type='button').navbar-toggle
span.sr-only 切换导航
span.icon-bar
span.icon-bar
span.icon-bar
  • 添加footer部分代码,如:
        //- FOOTER
//- .container: #footer .box1.foot#foot
.top
.box2 返回顶部
.box2
.dianshang
span xxx电商渠道:
p
a(href="http://" target="_blank") 天猫
a(href="http://" target="_blank") 京东
a(href="http://" target="_blank") 苏宁
a(href="http://" target="_blank") 微信商城
.cont
.d1
img(src='../images/ma2.jpg')
.d2
p 正月初五科技有限公司
p 联系电话:400-8888-888
p 北京市朝阳区朝阳门大街88号
.d3
img(src='../images/ma2.jpg')
p.bei ©2014-2017 正月初五 版权所有 | 京ICP备88888888号-1
  • 最后,把具体views中页面引用的default模板改成main,如:
extends ../layouts/main

好了,重启下应用看看效果吧。
备注:
pug模板引擎中文文档pug文档

keystonejs实战之页头页脚的更多相关文章

  1. Delphi TdxComponentPrinter页头页脚的设定

    TdxComponentPrinter页头页脚的设定 抄一段备忘.用程序控制也一样.如果是这样,那么 双击TdxComponentPrinter控件,在出现的窗口中,点击ADD,建立一个与TcxGri ...

  2. 【京东账户】——Mysql/PHP/Ajax爬坑之页头页尾加载

    一.引言 实现京东的账户项目,有一个小功能,页头页尾加载.要用到的是Apach环境,Mysql.PHP以及Ajax. 二.实现 原理: 用php文件分别写一个的页头和一个页尾,放在前后两个div里. ...

  3. Lodop打印表格带页头页尾 自动分页每页显示头尾

    Lodop中有两种专门给超文本表格的方式,ADD_PRINT_TABLE和ADD_PRINT_TBURL,该方式只能用于单个表格,表格外的内容不显示,是专门用于打印html超文本表格的.使用这两个语句 ...

  4. Lodop打印表格带页头页尾 高度是否包含页头页尾

    通过设置TableHeightScope,可以实现对ADD_PRINT_TABLE,表格带页头页尾,查看本博客另一篇博文:Lodop打印表格带页头页尾 自动分页每页显示头尾 超文本超过打印项高度,会自 ...

  5. Lodop打印表格带页头页尾 高度是否包含页头页尾 转载

    通过设置TableHeightScope,可以实现对ADD_PRINT_TABLE,表格带页头页尾,查看本博客另一篇博文:Lodop打印表格带页头页尾 自动分页每页显示头尾 超文本超过打印项高度,会自 ...

  6. 开启SSI配置使shtml支持include公用的页头页脚

    编写编写项目众多静态文件时,能像php等开发语言一样使用include将页面公有的header/footer/sidebar作为公用.独立.单一的文件引入到各页面上,这样修改这些页面公用部分时就能单独 ...

  7. django-xadmin使用之配置页眉页脚

    环境:xadmin-for-python3 python3.5.2 django1.9.12 在模块的adminx.py文件中增加以下代码即可: # TIP 定义页头页脚 class GlobalSe ...

  8. LaTeX 页眉页脚的设置

    Latex中页眉页脚的设置 1. 首先要加页眉页脚的话,需要启动宏: 我通常用fancyhdr宏包来设置页眉和页脚. \usepackage{fancyhdr} 我们在 LaTeX 中先把 page ...

  9. 移动端页头推荐配置 出现找不到favicon.ico错误原因和解决方法

    favicon 在未指定 favicon 时,大多数浏览器会请求 Web Server 根目录下的 favicon.ico .为了保证 favicon 可访问,避免404,必须遵循以下两种方法之一: ...

随机推荐

  1. ios 后台进程弹窗

    // http://iphonedevwiki.net/index.php/CFUserNotification // https://kunnan.github.io/2018/05/14/com. ...

  2. CornerNet 算法笔记

    论文名称:CornerNet: Detecting Objects as Paired Keypoints 论文链接:https://arxiv.org/abs/1808.01244 代码链接:htt ...

  3. Docker管理面板-URLOS(易用、高效、强大)

    一.介绍 URLOS是一个Docker管理面板,它把服务器端软件应用的安装行为简化到极致,堪称服务器端的应用宝,具有集群管理.自动故障转移.自动负载均衡等高级功能,可轻易搭建7*24小时在线的网站运行 ...

  4. Zookeeper入门(一)

      Zookeeper是分布式服务治理中间件   一.Zookeeper的简介   官方文档上这么解释zookeeper,它是一个分布式服务框架,是Apache Hadoop 的一个子项目,它主要是用 ...

  5. 修改state(react)中的某一个对象中的单个参数

    react项目中我们经常会涉及到修改state中参数的问题,如果参数为常用的基本类型变量,我们可以直接通过this.setState({...})方法来进行修改,但是如果变量为一个对象我们要如何修改呢 ...

  6. SpringBoot 使用Mybatis操作mysql示例

    1.准备数据库 创建数据库 create databases baodanjia; 创建帐号 create user 'baodanjia'@'%' identified by '123456' gr ...

  7. Idea导入Eclipse的Web项目并部署到Tomcat

    ⒈启动Idea,选择导入项目 选择导入的项目路径后,选择项目类型后一路next即可. ⒉选择File->Project Structure打开项目配置窗口(ctrl + alt + shift ...

  8. php设计模式之注册模式

    注册模式,解决全局共享和交换对象.已经创建好的对象,挂在到某个全局可以使用的数组上,在需要使用的时候,直接从该数组上获取即可.将对象注册到全局的树上.任何地方直接去访问. <?php class ...

  9. Python中的xrld模块

    一. 什么是xrld模块 python操作excel主要用到xlrd和xlwt这两个库,即xlrd是读excel,xlwt是写excel的库. 二. 使用介绍 . empty(空的), number, ...

  10. 一、程序安全-SQL注入漏洞

    先新建MYDB.MDF,表MyUser: 测试页面: 一.利用报错获取信息 操作:按姓名精确查询,在输入框输入:小卫' and 1=db_name()/0 and '1'='1执行语句:select ...