【发布时间】:2016-04-05 08:29:16
【问题描述】:
我正在 Google App Engine 柔性环境(托管 VM)上使用 Node JS 开发 Express Web 应用程序。基本上我只有一个需要服务的静态 HTML 页面,因为所有内容都是在 Angular JS 中动态加载的。
在阅读 Express best practices 时,我注意到他们不鼓励使用 res.sendFile,这正是我在开发中一直在做的事情。
由于我要切换到生产,我想按照建议使用静态服务,但我找不到任何说明如何模拟 res.sendFile 的文档。
您可以在下面找到我当前的代码。
var app = express();
app.use(express.static('www'));
app.get('/', oauth2.required, function (req, res) {
// ...
res.sendFile(path.join(__dirname + '/www/dashboard.html'));
// ...
});
【问题讨论】:
-
在生产中,您可以使用 nginx 服务器为您提供静态文件,并让您的 node.js 服务器处理动态内容。它通常是减少 node.js 服务器上的请求的最优化解决方案,例如服务器静态文件比 nginx 慢。
-
问题是我在 App Engine Flexible 上运行,我不知道我是否可以访问 nginx 配置。
-
从未使用过,但似乎可以在快速 google 搜索后,似乎可以安装自己的 nginx cloud.google.com/appengine/docs/flexible Infrastructure Customization 和 cloud.google.com/solutions/https-load-balancing-nginx 但用于提供静态文件的默认 express 中间件也可以解决问题 app.use('/public', express.static(path.join(__dirname, './public')));
标签: node.js google-app-engine express