zoukankan      html  css  js  c++  java
  • 运用shtml类型文件,实现项目页面的分割。

    学过动态网页,如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">

  • 相关阅读:
    pytest临时文件
    djangoclassmeta说明
    python方法
    字符串统计个数2
    python之fixture作用域
    djangomodel在已有model同步添加新的字段
    将 Access 数据库 转换到Sql Server 中
    .net 实现条码
    条码打印异步调用
    日期控件datepicker 只能选指定段日期案例
  • 原文地址:https://www.cnblogs.com/dabingzi/p/6424942.html
Copyright © 2011-2022 走看看