Проблема с использованием функциональности Nunjucks в "index.html" - PullRequest
0 голосов
/ 09 января 2019

Я пытаюсь использовать Nunjucks (на стороне клиента) в качестве шаблонного компонента моего проекта. Я использую xampp, apache для сервера.

Проблема в том, что когда я помещаю «код nunjucks» в index.html, он не компилируется. Если я поставлю "{% include" sidebar.html "%}" , это просто отобразит это в DOM.

Я могу использовать метод рендеринга ПОСЛЕ загрузки DOM, и в моих шаблонах все работает.

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>
     ...

Итак, в основном я хочу знать, возможно ли использовать функции nunjucks на первой странице, обслуживаемой apache (в данном случае index.html).

Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 10 января 2019

Я нашел хакерский обходной путь, где я «добавляю еще один слой 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.

0 голосов
/ 10 января 2019

Попробуйте

// 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>
// index.njk
{% include "sidebar.njk" %}
...
...