Tomcat 各版本 配置SSI服务实现html模块化所出现的问题--超详细解决方案
进入tomcat的conf目录下进行如下配置
在context.xml中找到context节点添加privileged
<Context privileged="true"></Context> //让tomcat开启特权模式
在web.xml中配置
找到含有SSI的servlet将注释打开 并添加参数 和下面一样就行
<servlet> <servlet-name>ssi</servlet-name> <servlet-class> org.apache.catalina.ssi.SSIServlet </servlet-class> <init-param> <param-name>buffered</param-name> <param-value>1</param-value> </init-param> <init-param> <param-name>debug</param-name> <param-value>0</param-value> </init-param> <init-param> <param-name>expires</param-name> <param-value>666</param-value> </init-param> <init-param> <param-name>isVirtualWebappRelative</param-name> <param-value>false</param-value> </init-param> <!--手动配置编码--> <init-param> <param-name>inputEncoding</param-name> <param-value>UTF-8</param-value> </init-param> <init-param> <param-name>outputEncoding</param-name> <param-value>UTF-8</param-value> </init-param> <load-on-startup>4</load-on-startup> </servlet>
同时还要打开SSI的<servlet-mapping>注释
<servlet-mapping> <servlet-name>ssi</servlet-name> <url-pattern>*.shtml</url-pattern> <url-pattern>*.html</url-pattern> </servlet-mapping>
到这是普通网上给出的, 结果是 tomcat6.0及以前的版本运行没有问题,
使用tomcat8.5 还是出不来
在web.xml中 ,
原来 tomcat 7以后追加了验证:不仅仅要取消上面的注释,还有这一块: 大概在3543行 打开注释:
重启tomcat 验证一下: 完美!
还有几个坑 给各位填一下:
你们在页面引入模块的时候切记按照我这个格式:方框的前后不可以有空格
引入时候有两种方式
<!--#include virtual="static/_header.html"--> <!--#include file="_header.html"-->
第一种方式: 就是虚拟路径:相对于项目而言
第二种: 是和调用模块的页面在同一目录下