学过动态网页,如asp、php的人知道如何去引用网站头部、底部文件包含。例如在php中有一个方法:include();这个方法能在当前文档中引入外部文件,从而方便网站的开发和维护,然而html静态文件的包含却鲜为人知,我们平时看到很多大型的网站都使用了.shtml的文件类型,其实它们是启用了ssi的功能,因此实现了shtml等静态页的包含。

shtml是一种包含有嵌入式服务器方包含命令的HTML文本。在被传送给浏览器之前,服务器会对shtml文档进行完全地读取、分析以及修改。

shtml使用了ssi的一些指令,你可以在shtml文件中写入ssi指令,当客户端访问这些shtml文件时,
服务器端会把这些shtml文件进行读取和解释,

他提供以下几种指令:

   1、显示服务器端环境变量<#echo>
          2、将文本内容直接插入到文档中<#include>
          3、显示WEB文档相关信息<#flastmod><#fsize>(如文件制作日期/大小等)
          4、直接执行服务器上的各种程序<#exec>(如CGI或其他可执行程序)
          5、设置SSI信息显示格式<#config>(如文件制作日期/大小显示方式)

以2为例,使用方式:

在shmtl文件内    <!--#include file="head.html"-->

即可引用头部文件。

那么这样我们将能很轻易的去分割页面,不再需要后端去分割页面再引用。

当然,如果WEB服务器不支持ssi,它就会只不过将它当作注释信息,直接跳过其中的内容;浏览器也会忽略这些信息。

那么,如何让服务端支持ssi指令?

1. Apache

(1) 加载ssi模块。因为ssi是apache中的一个模块服务项,要使用ssi功能,我们首先要对ssi模块进行加载,打开apache的配置文件httpd.conf。找到 LoadModule ssl_module modules/mod_ssl.so 命令,因该服务未被默认加载,所以只需取消该命令前的注释符#即可开启。

(2)添加你需要的文件类型,因为使用ssi技术的默认文件名为.shtml,所以我们需要在配置文件中对.shtml后缀名进行设置,并按自己的需求设置需要对ssi技术进行解析的文件类型设置。同样在httpd.conf文件中找到如下两行代码:

AddType text/html .shtml

AddOutputFilter INCLUDES .shtml

如果代码前有注释,把注释去掉,还可以添加.html的文件类型

(3) 在httpd.conf文件中查找“Options Indexes FollowSymLinks” 在后面加上INCLUDES

2.Tomcat

  • 去掉filter ssi的注释,;
  • 去掉ssi filter mapping的注释,;
  • 去掉filter ssi mime mapping的注释。

修改tomcat_home/conf/context.xml文件里的context标签:
     <Context>
     修改为
     <Context privileged="true">

运用shtml类型文件,实现项目页面的分割。的更多相关文章

  1. C#项目打开/保存文件夹/指定类型文件,获取路径

    C#项目打开/保存文件夹/指定类型文件,获取路径 转:http://q1q2q363.xiaoxiang.blog.163.com/blog/static/1106963682011722424325 ...

  2. Atitit.Guibutton与面板---项目规模的评估----文件数统计,结构,代码行数,每类型文件行数.

    Atitit.Guibutton与面板---项目规模的评估----文件数统计,结构,代码行数,每类型文件行数. 1. Kpi:::  代码行数(凝视行数,空白的行数), 方法数,class数 1 2. ...

  3. Atitit.Gui按钮与面板---项目规模的评估----文件数统计,结构,代码行数,每类型文件行数.

    Atitit.Gui按钮与面板---项目规模的评估----文件数统计,结构,代码行数,每类型文件行数. 1. Kpi:::  代码行数(注释行数,空白的行数), 方法数,class数 1 2. 过滤器 ...

  4. asp.net使用httphandler打包多CSS或JS文件以加快页面加载速度

    介绍 使用许多小得JS.CSS文件代替一个庞大的JS或CSS文件来让代码获得更好的可维 护性,这是一个很好的实践.但这样做反过来却损失了网站的性能.虽然你应该将你的Javascript代码写在小文件中 ...

  5. Java归去来第4集:java实战之Eclipse中创建Maven类型的SSM项目

    一.前言 如果还不了解剧情,请返回第3集的剧情          Java归去来第3集:Eclipse中给动态模块升级 二.在Eclipse中创建Maven类型的SSM项目 2.1:SSM简介 SSM ...

  6. doc或docx(word)或image类型文件批量转PDF脚本

    doc或docx(word)或image类型文件批量转PDF脚本 1.实际生产环境中遇到文件展示只能适配PDF版本的文件,奈何一万个文件有七千个都是word或者image类型的,由此搞个脚本批量转换下 ...

  7. java_eclipse_svn 与服务器同步时 ,忽略某类型文件和文件夹

    1. 在项目开发中使用svn ,带来很大的方便,有时我们会把整个项目上传的svn服务器上 这样就包含了  编译过的class文件  以及 一些 .svn,.log文件,有些文件时本地complie 的 ...

  8. django之创建第11个项目-页面整合

    目的:将如下众多html页面整合到一个index.html页面中. 百度云盘:django之创建第11个项目-页面整合 用下面的方式实现: <!DOCTYPE html> <head ...

  9. Linux 文件系统类型 文件系统结构 与Windows文件系统的比较

    摘自:http://blog.csdn.net/gelivable007/article/details/7249365 Linux 文件系统类型 磁盘文件系统.包括硬盘.CD-ROM.DVD.USB ...

随机推荐

  1. java中多线程产生死锁的原因以及解决意见

    1.  java中导致死锁的原因 多个线程同时被阻塞,它们中的一个或者全部都在等待某个资源被释放,而该资源又被其他线程锁定,从而导致每一个线程都得等其它线程释放其锁定的资源,造成了所有线程都无法正常结 ...

  2. 19. 接口(创建interface 继承implements)

    1.语法: interface 接口名{ 属性 抽象方法 } 2.实例: 3.注意: 1)类实现接口可以通过implements实现,实现接口的时候必须把接口中的所有方法实现,一个类可以实现多个接口. ...

  3. python中模块和包的概念

    1.模块 一个.py文件就是一个模块.这个文件的名字是:模块名.py.由此可见在python中,文件名和模块名的差别只是有没有后缀.有后缀是文件名,没有后缀是模块名. 每个文件(每个模块)都是一个独立 ...

  4. *args和**kwargs用法

    ''' @Date: 2019-10-10 21:14:56 @LastEditors: 冯浩 @LastEditTime: 2019-10-20 22:38:16 ''' def func(*arg ...

  5. Download QT

    http://download.qt.io/archive/qt/

  6. selenium 无头浏览器headless browser

    无头浏览器,即没有界面的浏览器,浏览器该有的功能特性都有. if browser.lower() == "chrome": # 无头浏览器 chrome_opt = webdriv ...

  7. 01二维背包——poj2576

    /* 要求把a数组分成两个集合,两个集合人数最多差1,并且元素之和的差尽可能小 那只要把所有可行的列出来即可 01二维背包,即体积是个二维数据,那么我们的背包状态也应该设为二维 dp[j][k]设为 ...

  8. Delphi GDI对象之脱屏位图(Offscreen Bitmaps)

    脱屏位图(Offscreen Bitmaps) 脱屏位图,也叫内存位图,普遍用于Windows程序设计中.它在内存中制作图像,然后利用Draw方法在屏幕上显示出来.当用户想更快的在屏幕上绘制图像时,脱 ...

  9. Feign连接超时 Read timed out

    在远程调用的过程中由于连接超时,导致无法成功请求数据,下面是报错 项目中用的是spring-cloud-starter-openfeign 2.2.0版本 找到对应的文档,开始查阅资料 文档首页就找到 ...

  10. 使用Docker创建数据容器

    使用Docker创建数据容器 翻译自: Data-only container madness 1.什么是数据容器? 数据容器就是本身只创建一个volume供其他容器共享,创建完后即退出,不执行任何任 ...