网站地图    收藏   

主页 > 后端 > PHP语言 >

nginx lua 与 autoindex教程_自学php网

来源:自学PHP网    时间:2014-12-04 21:50 作者: 阅读:

[导读] nginx-lua 不仅可以做接口, 还可以处理上层的输出 ( upstream outputs)。 比如下面的例子: location /sqlite { autoindex on; autoindex_localtime on; } /sqlite目录开了autoindex,界面极简单,无任何css和js,想...

nginx-lua 不仅可以做接口, 还可以处理上层的输出 ( upstream outputs)。

比如下面的例子:

 
location /sqlite {
autoindex on;
autoindex_localtime on;
}
 

/sqlite目录开了autoindex,界面极简单,无任何css和js,想对其做出美化,无从下嘴。

效果图:

nginx_lua_autoindex

最近学习了nginx-lua,突然发现有可行方案了:

 
body_filter_by_lua '
local b = ngx.arg[1]
--单双引号的问题。 双引号要用\\二个斜线转义。 单引号要用\一个斜线转义。 前提条件是body_filter_by_lua 后面用的是单引号。
ngx.arg[1] = string.gsub( b, "(<head>)", "%1 <link type=\\"text/css\\" rel=\'stylesheet\' href=\'/sqlite/css.css\'/>")
';
 

通过body_filter_by_lua,可以对 http 输出( ngx.arg[1])进行处理,从而达到附加css文件的目的。
再通过
echo_after_body
就可以方便地在结束之后,附加js代码:

 
set $append_js "<script src='/bootstrap/js/sqlite.js'></script>";
echo_after_body $append_js;
 

效果图:

nginx_lua_autoindex_new

貌似越改越丑了……

PS: echo_after_body 不影响tar.gz文件下载。即:不会在tar.gz文件里面附加东西…否则就无法解压了。
求原理。

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论