在“ index.html”中使用Nunjucks功能时出现问题

时间:2019-01-09 20:51:37

标签: javascript nunjucks

我正在尝试使用Nunjucks(客户端)作为项目的模板组件。我正在使用xampp,apache作为服务器。

问题在于,当我在index.html中放入“ nunjucks代码”时,它无法编译。如果我放“ {%包括” sidebar.html“%}” ,它只会在DOM中呈现。

加载DOM之后,我可以使用render方法,并且在我的模板中,一切正常。

index.html(无效):

<!DOCTYPE html>
  <html lang="en">
    <head>
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
      <!-- Meta, title, CSS, favicons, etc. -->
      ...
     <body>
        ...
        {% include "sidebar.html" %} // This gets rendered literally
        ...
     </body>
     ...

因此,基本上,我想知道是否有可能在apache服务的第一页(在本例中为index.html)中使用nunjucks功能。

谢谢。

2 个答案:

答案 0 :(得分:0)

尝试

True
// index.html
<html lang="en">
  <head>
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  <script src = "/js/vendors/nunjucks.min.js"></script>
  <script>
  window.addEventListener('load', function () {
    nunjucks.render('index.njk', {some-data}, (err, html) => body.innerHTML = err && err.message || html);
  });
  </script>
  <body>
  <!-- Empty body -->
  </body>
</html>

答案 1 :(得分:0)

我发现了一个骇人的解决方法,在这里我“添加了另一层htmls”。

因此,在 index.html 中,我有以下代码:

$(document).ready( function() {
  nunjucks.configure('./includes', { autoescape: true });
    nunjucks.render('dashboard_main.html', {}, function(err, res) {
      $("#main_content").html(res)
    });
  });

然后,dashboard_main.html可以具有nunjucks代码。