使用 nginx 服务器的多个嵌套 HTML 包含指令

使用 nginx 服务器的多个嵌套 HTML 包含指令

我有index.html:

<!--#include virtual="/includes/Framework.inc"-->

在 Framework.inc 内部我有:

<!--#include file="/includes/HTML.inc"-->

但是,当我打开 index.html 页面时,查看源代码后,我发现嵌套包含并没有发生,并且看到了完整的包含指令:

<!--#include file="/includes/HTML.inc"-->

我们如何确保 nginx 支持多级 HTML 包含?

答案1

Nginxtext/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;
    }
}

相关内容