node.js如何实现server side include功能?
发布于 12 年前 作者 wyzwhp 8127 次浏览 最后一次编辑是 8 年前

最近用node.js+express开发的时候,遇到一个问题需要实现server side include的功能,搜索了半天没有找到合适的解决方案,express 对于include的代码默认不处理,直接输出,没办法执行include的内容,我后来试着尝试nginx的反向代理一下,问题居然解决了。 nginx 开启ssi 配置ssi

主要是三个参数,ssi,ssi_silent_errors和ssi_types,均可以放在http,server和location的作用域下。

ssi on 开启ssi支持,默认是off

ssi_silent_errors on 默认值是off,开启后在处理SSI文件出错时不输出错误提示:"[an error occurred while processing the directive] "

ssi_types 默认是ssi_types text/html,所以如果需要htm和html支持,则不需要设置这句,如果需要shtml支持,则需要设置:ssi_types text/shtml

SSI的格式: < !–#include file=“bottom.htm”–> 或 < !–#include virtual="/hx/bottom.htm"–> 路径是相对server中root根目录。

更多请参见官方文档:http://wiki.nginx.org/NginxChsHttpSsiModule 关于nginx反向代理的问题可以问一下度娘,这里就不多解释了

3 回复

你说的view层的include吧 用模板引擎应该都支持的 我用的ejs+ejs-local 有include的功能

我也是用的 nginx 反向代理到 nodejs 服务器,但是 对于 include 还是原样输出了。请问你是怎么做到的?

哦哦,解决了,如你所说,关键代码在这里:ssi on;

回到顶部