小编rpl*_*iko的帖子

配置 nginx 以发送带有 HTTP 正文的页眉和页脚的响应

我有一个文件夹中的备忘录集合 一个/memos/items/备忘录用于包含 HTML 标题部分的 SSI 包含语句,直到并包括开头<body>,然后是备忘录内容的 HTML 代码,最后是进一步的 SSI 包括包含关闭 HTML 文档的代码的页脚的语句,如下所示:

<!--# include file="/memos/header.html" -->
Dies ist ein <i>Testeintrag</i>.
<blockquote>
Man soll den Tag
nicht vor dem Abend loben
</blockquote>
<!--# include file="/memos/footer.html" -->
Run Code Online (Sandbox Code Playgroud)

这很有效,但我不喜欢单项文件中的 SSI 语句。我更愿意指示 nginx 自动提供页眉和页脚,配置类似于

location ~ /memos/[\w-]+$ {
  sendfile /memos/before.html;
  sendfile $request_filename;
  sendfile /memos/after.html;
}
Run Code Online (Sandbox Code Playgroud)

这可能吗?是否有一个 nginx 模块提供了一个sendfile像描述的那样工作的指令?

优点是:

  • 包含项目的文件夹仅包含纯内容,没有附加指令。因此,当提供“搜索”功能时,可以grep编辑文件夹。
  • 避免了冗余(页眉和页脚的“包含”指令只存在一次,而不是在每个重复的文件中。

编辑 (2016/07/01)

同时,我通过简单地改变视角,找到了具有上述优点的 SSI 解决方案(即仅提供项目文件内容,没有 ssi 标签):而不是在每个单独的项目文件中包含页眉和页脚,我包括单个主模板中的项目文件。

受到nginx 站点上的提议的启发;我配置

 location /memos/ {

    ssi …
Run Code Online (Sandbox Code Playgroud)

http nginx

6
推荐指数
1
解决办法
2711
查看次数

标签 统计

http ×1

nginx ×1