通常,在使用Express的EJS模板时,我不必重新启动服务器以查看我对模板所做的更改.我只是对.ejs文件进行了更改,然后重新加载浏览器以查看我的更改.
但是,使用swig模板(我非常喜欢ejs),如果我对.html文件进行更改,我必须重新启动服务器才能看到我在浏览器中反映的更改.
这是一个错误,还是我忽略的其他东西的副作用?
我不是在寻找像grunt watch,nodemon或supervisor这样的工具,我只是希望我的swig模板在可能的情况下更像ejs模板.
如Swig API文档中所述,您可以将Swig配置为不缓存模板.
我使用类似的东西:
swig.init({
..
cache : app.get('env') === 'production',
..
});
Run Code Online (Sandbox Code Playgroud)
这将使其仅在生产环境中缓存已编译的模板.
一般来说,模板有两个步骤。第一个是“编译”,其中模板被转换为函数,然后是“渲染”,其中函数仅使用局部变量执行。
对于 ejs 和大多数模板系统,编译是在开发期间根据每个请求完成的。然而,对于 swig,它可能总是缓存编译步骤,即使 express 说“不在生产中时不要缓存”,因此“功能”在重新启动之前不会改变。
解决方案?询问 swig,告诉他们支持在https://github.com/visionmedia/consolidate.js中启用/禁用缓存
| 归档时间: |
|
| 查看次数: |
2535 次 |
| 最近记录: |