shtml格式的网页打开乱码,排版错误-–Nginx配置ssi#
今天上线一套网站,他的网页形式是shtml格式的,等Nginx Tomcat全部部署完毕后,发现打开网页是乱码的。排版也特别不正常,
网上找了相关资料后得出下文,特此记录
SSI简介#
Server Side Include : 服务器端嵌入
原理 : 将内容发送到浏览器之前,可以使用“服务器端包含 (SSI)”指令将文本、图形或应用程序信息包含到网页中。因为包含 SSI 指令的文件要求特殊处理,所以必须为所有 SSI 文件赋予 SSI文件扩展名。默认扩展名是 .stm、.shtm 和 .shtml
主要有以下几种用用途:
- 显示服务器端环境变量<#echo>
- 将文本内容直接插入到文档中<#include>
- 显示WEB文档相关信息<#flastmod #fsize> (如文件制作日期/大小等)
- 直接执行服务器上的各种程序<#exec>(如CGI或其他可执行程序)
- 设置SSI信息显示格式<#config>;(如文件制作日期/大小显示方式) 高级SSI
;可设置变量使用if条件语句。
为什么用SSI?#
- 一个登录用户在页面访问的时候如何充分利用 cache?
- 页面静态化的一个大问题是登录用户访问页面如何静态化。例如首页,大部分的页面内容需要缓存但是用户登录后的个人信息是动态信息,不能缓存。那么如何解决这个"页面部分缓存"问题?
- 现有的方案是利用 SSI - Server Side include 。
- 这里最关键的就是静态文件可以包含一个动态的网页的 URL 。
Nginx 如何开启 SSI#
首先找到你的nginx配置文件
vi /usr/local/nginx/conf/nginx.conf
加入如下代码
1、开启shtml后缀的文件名支持ssi
server{
......
ssi on;
ssi_silent_errors on;
ssi_types text/shtml;
}
2、开启html后缀的文件名支持ssi
server{
......
ssi on;
ssi_silent_errors on;
}
3、在sample目录下开启html后缀的文件名支持ssi
server{
......
location /sample/{
ssi on;
ssi_silent_errors on;
}
}
保存 重启 nginx