• SSI 网页内嵌技术


    引子

    一般来说我们开发网页的时候,大多都会以一个大的HTML页面来做,来开发,来发布,来维护。初期可能就1-2人维护,随着业务发展,功能迭代,一个首页会相当复杂,那么就有可能会有一个团队来维护,首页包含的功能会有很多,比如,轮播图,分类,商品推荐,广告等等,可以看一下京东:


    以上三张图中的红框部分,其实都是每个页面中的一个小功能,他们都可以单独拿出来作为一个单独的页面,随后再嵌入到页面中,如此一来,就更加便于团队的开发和维护了,同时也能提供公用化的功能,减少重复代码。

    SSI

    那么如何进行网页内嵌呢,我相信经历过jsp时代的应该会知道include,其实我们这里使用的原理也是一样的。

    SSI就是server side include,网页服务端内嵌技术,像Apache,Nginx都支持。可以把页面拆分成小页面后,再合并聚合在一起显示给用户。

    ssi的可定义扩展名为:.stm、 .shtm、 .shtml

    标签使用

    如下,看似和jsp的include是类似的,道理也是一样的

    <!--#include virtual="/pages/index/abc.html"  -->
    

    在nginx中配置ssi

    • 如何安装nginx的,不多说了,参考我以前的博客:
      https://www.cnblogs.com/leechenxiang/p/7086298.html

    • 准备如下页面,主要是配置首页的include标签:

    • nginx中的ssi配置如下:

    • nginx.conf 配置:

      server {
          listen       80;
      server_name localhost;
      # 开启 ssi
      ssi on;
      # ssi 出错是不会打印日志
      ssi_silent_errors on;
      # 默认的静态页面后缀为 html,如果想自定义,比如使用shtml则开启下方注释
      # ssi_types text/shtml;
      location / {
      # root html;
      # 指定静态文件所在位置
      root ssi;
      # 默认首页,如果你的后缀在上方修改为 *.shtml,则下方也需要跟着修改
      index index.html index.htm;
      }
      }
    • html如下:

    • github地址:https://github.com/leechenxiang/ssi-demo

    精品推荐

    如果你是一名java开发人员,在如此激烈的竞争中,为亲爱的你推荐如下架构师进阶课程噢~
    https://class.imooc.com/sale/javaarchitect

  • 相关阅读:
    aa
    ECS上搭建Docker(CentOS7)
    mysql时间戳转日期
    rsync用法
    docker安装mysql8
    使用Docker安装mysql,挂载外部配置和数据
    my.cnf
    Centos7通过yum安装jdk8
    maven添加本地包命令mvn install:install-file
    Mysql——查看数据库,表占用磁盘大小
  • 原文地址:https://www.cnblogs.com/leechenxiang/p/SSI-wang-ye-nei-qian-ji-shu.html
Copyright © 2020-2023  润新知