_data.json变量未加载

时间:2014-07-09 23:02:15

标签: json harp

我已经设置了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 %> &mdash; My Website</title>
        </head>
        <body>
               <%- yield %>
        </body>
</html>

正确加载布局和页面内容,<%= title %>替换为_harp.json中给出的值。但是,当_data.json中存在条目时,不会进行替换,并且会继续使用_harp.json中的值替换。

我是否错过了明显的这个?提前谢谢。

2 个答案:

答案 0 :(得分:1)

似乎Harp需要重启,尽管在Harp的文档中没有提到。每次修改_data.json时,它似乎也需要重新启动。

答案 1 :(得分:0)

解决方案

我遇到了同样的问题,刚刚找到了解决方案。

在我的案例中,竖琴服务器是使用NODE_ENV=production启动的,具有正好这种副作用(请参阅页面末尾的https://harpjs.com/docs/environment/server)。 明确设置NODE_ENV=development解决了问题。

有关环境的更多信息

https://harpjs.com/docs/development/environment

注意

NODE_ENV=development是默认设置,您需要为生产目的明确设置NODE_ENV=production

在我的情况下,我使用已经构建的docker容器(dockerimages/harp),默认情况下使用NODE_ENV=production,这就是为什么我没有意识到它是默认设置为生产。< / p>

要使用该图像进行开发,您必须输入:

$ docker [...] --env NODE_ENV=development [...] dockerimages/harp