我有index.html:
<!--#include virtual="/includes/Framework.inc"-->
在 Framework.inc 内部我有:
<!--#include file="/includes/HTML.inc"-->
但是,当我打开 index.html 页面时,查看源代码后,我发现嵌套包含并没有发生,并且看到了完整的包含指令:
<!--#include file="/includes/HTML.inc"-->
我们如何确保 nginx 支持多级 HTML 包含?
答案1
Nginx做text/html
支持嵌套的 SSI 包含。但是,默认情况下,SSI 模块仅处理MIME 类型内容,并且您的.inc
文件很可能在Content-Type
响应 HTTP 标头中返回其他内容。您可以调整全局 MIME 类型以包含.inc
扩展名,或指定要处理的其他 MIME 类型ssi_types
指令,但我宁愿为/includes/
目录内容定义一个额外的位置:
location /includes/ {
internal;
ssi on;
types {
text/html html htm inc;
}
}