_data.json переменные не загружаются
Я установил Harp, и он работает и обслуживает контент, но все значения хранятся в _data.json
кажется, не имеет никакого эффекта.
Структура каталогов:
/
|-- _harp.json
|-- _data.json
|-- _layout.ejs
|-- index.md
|-- getting-started.md
Файл _harp.json
содержит:
{
"globals": {
"title": "Home"
}
}
_data.json
содержит:
{
"getting-started": {
"title": "Getting Started"
}
}
А также _layout.ejs
содержит:
<!DOCTYPE html>
<html>
<head>
<title><%= title %> — My Website</title>
</head>
<body>
<%- yield %>
</body>
</html>
Макет и содержимое страницы загружаются правильно, и <%= title %>
заменяется значением, указанным в _harp.json
, Тем не менее, когда запись существует в _data.json
, замена не производится, и она продолжает заменяться значением в _harp.json
,
Я пропустил очевидное с этим? Заранее спасибо.
2 ответа
Похоже, что Арфа потребовала перезагрузки, хотя это не упоминалось в документации Арфы. Также, кажется, требует перезагрузки каждый раз _data.json
модифицируется.
Решение
Я столкнулся с той же проблемой, и только что нашел решение.
Оказывается, в моем случае сервер арфы был запущен с NODE_ENV=production
который имеет именно этот побочный эффект (см. https://harpjs.com/docs/environment/server в конце страницы). Явно установлено NODE_ENV=development
решил проблему.
Больше информации об окружающей среде
https://harpjs.com/docs/development/environment
Заметка
NODE_ENV=development
по умолчанию, вам нужно явно установить NODE_ENV=production
для производственных целей.
В моем случае я использую уже построенный докер-контейнер (dockerimages/harp
) какое значение по умолчанию использовать NODE_ENV=production
вот почему я не понял, что он был установлен для производства по умолчанию.
Чтобы использовать этот образ для разработки, вы должны поставить:
$ docker [...] --env NODE_ENV=development [...] dockerimages/harp