Nginx:使用另一个text / JSON文件中的文本替换响应文本

时间:2015-07-02 10:46:26

标签: json nginx

在以下通过NGINX提供的HTML文件中:

<html>
    <body>Today is {{day}}</body>
</html>

我有以下JSON文件:

{
    "year": "2015",
    "month": "July",
    "day": "Thursday"
}

我希望NGINX将输出修改为以下内容:

<html>
    <body>Today is Thursday</body>
</html>

我已经研究过通过正则表达式搜索响应文本并使用以下模块替换它:NGINX使用:http://nginx.org/en/docs/http/ngx_http_sub_module.html

问题是,如何读取与NGINX位于同一服务器上的JSON文件,并映射替换?

P.s。:如果需要,我可以修改使用纯文本文件作为映射,而不是JSON文件。

1 个答案:

答案 0 :(得分:0)

作为其他搜索者的参考,您可以为此使用SSI module of NGINX

您将需要NGINX配置中的变量:

location = /today.html {
  ssi on;
  set $year '2015';
  set $month 'July';
  set $day 'Thursday';
  root /var/www/default;
}

并在模板文件(/var/www/default/today.html)中:

<html>
  <body>Today is <!--# echo var="day" --></body>
</html>
  

我可以修改为使用纯文本文件而不是JSON文件

我现在不知道是否可以通过JSON进行此操作,但是纯文本文件应该可以做到这一点。您可以在模板(docs)中包含纯文本文件:

<html>
  <body>
    <!--# include file="day.txt" -->
  </body>
</html>

day.txt应该包含的位置

Thursday

您还可以包含返回当前日期的脚本,因此无需更新day.txt