0

我已经设法让 Nunjucks 与 Sails.js 一起工作,但似乎在我重新启动服务器之前这些更改并没有被采纳。我会自动看到一次或两次反映的更改,但在那之后,即使手动刷新浏览器也不会显示我的更改。

我用这里的建议实现了 LiveReload:

获取 livereload 以使用 Sails.js

但我不怀疑这是 LiveReload 的问题。

有没有其他人让 Sails.js 和 Nunjucks 一起玩得很好?如果是这样,怎么做?

4

3 回答 3

3

问题是 nunjucks 本身。它有一个 watch 选项,默认设置为 false:

您可以在以下位置启用它sails/config/bootstrap.js

var nunjucks = require('nunjucks')
 module.exports.bootstrap = function(cb) {

    nunjucks.configure({
    watch:true
  })
  // It's very important to trigger this callback method when you are finished
  // with the bootstrap!  (otherwise your server will never lift, since it's waiting on the bootstrap)
  cb();
};

结合livereload一切正常。

于 2016-03-12T09:52:38.457 回答
0

在 /config/views.js

  engine: {
          ext: 'html',
          fn: function (str, options, fn) {
              var engine = require('nunjucks');
                  engine.configure('views', {
                    autoescape       : true,
                    throwOnUndefined : true,
                    trimBlocks       : true,
                    lstripBlocks     : true,
                    express          : sails.hooks.http.app,
                    watch            : true,
                    noCache          : false,
                    web              : {
                          useCache : true,
                          async    : false
                    }
              });
              engine.render(str, options, fn);
          }
      },
于 2016-08-21T15:30:46.493 回答
0

对于 Sails.js 1,解决方案略有变化:

在 /config/views.js

module.exports.views = {
    ...
    getRenderFn: () => {
      // Import nunjucks.
      const nunjucks = require('nunjucks');

      // Configure nunjucks.
      const env = nunjucks.configure('views', {
        autoescape       : false,
        throwOnUndefined : true,
        trimBlocks       : true,
        lstripBlocks     : true,
        watch            : true,
        noCache          : false,
        web              : {
          useCache : true,
          async    : false
        }
      });

      // Here you can add filter
      env.addFilter('filtername', (name) => {
        return name;
      });

      return nunjucks.render;
    }
}

希望这会对某人有所帮助;)

于 2019-09-05T17:20:25.180 回答