当NODE_ENV
设置为production
时, ExpressJs
没有缓存我的views
时NODE_ENV
问题。 我正在使用EJS template engine
。 这是我的代码:
npm脚本
"start": "set NODE_ENV=production && node ./bin/www"
app.js
console.log(app.get('env')) => logs production
console.log(app.get('view cache')) => logs undefined
app.set('view cache', true)
console.log(app.get('view cache')) => logs true
因此,当我将NODE_ENV
环境变量设置为production
ExpressJs
似乎没有启用视图缓存,但是当我通过调用app.set('view cache', true)
手动启用它时app.set('view cache', true)
它会。 根据ExpressJs
它应该默认启用视图缓存。
我测试了缓存是否有效,但只有在我手动启用时才会进行测试。
首先通过NODE_ENV=production node app.js
运行您的应用程序,如果它是true
那么您应该更改package.json
的start
属性。
我想到了。 问题不在于ExpressJs
或npm scripts
,而在于我使用的shell命令。
使用console.dir
我看到NODE_ENV
设置为带有额外空间的production
。 将npm脚本更改为"start": "set NODE_ENV=production&&node ./bin/www"
确实有效。