发布于 2015-09-03 15:49:19 | 646 次阅读 | 评论: 0 | 来源: 网络整理
该模块用于删除 html , 内嵌 javascript 和 css 中的注释以及重复的空白符。
location / {
trim on;
trim_js on;
trim_css on;
}
trim on
| off
默认: trim off
上下文: http, server, location
使模块有效(失效),删除 html 的注释以及重复的空白符(n,r,t,' ')。
例外:对于 pre
,textarea
,script
,style
和 ie/ssi/esi注释 等标签内的内容不作删除操作。
参数值可以包含变量。
例如:
set $flag "off";
if ($condition) {
set $flag "on";
}
trim $flag;
trim_js on
| off
默认: trim_js off
上下文: http, server, location
使模块有效(失效),删除 html 内嵌 javascript 的注释以及重复的空白符(n,r,t,' ')。
例外:对于非javascript代码的 script
标签内容不作删除操作。
参数值可以包含变量。
trim_css on
| off
默认: trim_css off
上下文: http, server, location
使模块有效(失效),删除 html 内嵌 css 的注释以及重复的空白符(n,r,t,' ')。
例外:对于非css代码的 style
标签内容不作删除操作。
参数值可以包含变量。
trim_types MIME types
默认: trim_types: text/html
上下文: http, server, location
定义哪些MIME types类型的响应可以被处理。
目前只能处理html格式的页面,js和css只针对于html内嵌的代码,不支持处理单独的js和css页面。
如果这样配置 trim_type text/javascript;
,js代码将被作为html代码来处理而出错。
添加请求参数http_trim=off,将关闭trim功能,返回原始代码,方便对照调试。
格式如下:
http://www.xxx.com/index.html?http_trim=off
原始:
<!DOCTYPE html>
<textarea >
trim
module
</textarea >
<!--remove all-->
<!--[if IE]> trim module <![endif]-->
<!--[if !IE ]>--> trim module <!--<![endif]-->
<!--# ssi-->
<!--esi-->
<pre style =
"color: blue" >Welcome to nginx!</pre >
<script type="text/javascript">
/*** muitl comment
***/
//// single comment
str.replace(/ /,"hello");
</script>
<style type="text/css" >
/*** css comment
! ***/
body
{
font-size: 20px ;
line-height: 150% ;
}
</style>
结果:
<!DOCTYPE html>
<textarea>
trim
module
</textarea>
<!--[if IE]> trim module <![endif]-->
<!--[if !IE ]>--> trim module <!--<![endif]-->
<!--# ssi-->
<!--esi-->
<pre style="color: blue">Welcome to nginx!</pre>
<script type="text/javascript">str.replace(/ /,"hello");</script>
<style type="text/css">body{font-size:20px;line-height:150%;}</style>
pre
和 texterea
标签的内容不做删除。pre
嵌套使用。script
和 style
标签的内容不做删除。<!--[if <![endif]-->
之间的内容判断为ie条件注释。<!--# -->
<!--esi -->
之间的内容分别判断为ssi和esi注释。<!-- -->
借鉴 jsmin 的处理规则 (http://www.crockford.com/javascript/jsmin.html)
<script type="text/javascript">
或者 <script>
标签认为是javascript。
//
/* */
借鉴 YUI Compressor 的处理规则 (http://yui.github.io/yuicompressor/css.html)
<style type="text/css">
或者 <style>
标签认为是css。
html>/**/body p{color:blue}
/**/.selector{color:khaki}/**/
/* */