我正在尝试创建一个插件,用于在HapiJS中服务我的静态文件。我的文件结构如下
|_ plugins
| |_ assets
| |_ assets.js
| |_ package.json
| |_ views
|_ public
| |_ css
|app.js
| config.json
| package.json
在我的plugins/assets/assets.js文件中,我有以下代码:
const Inert = require('inert');
exports.register = function(server, options, next) {
server.register('inert');
server.route({
method: 'GET',
path: '/{public}',
handler: {
directory: {path: '../../public'}
}
});
next();
};
exports.register.attributes = {
pkg: require('./package');
}
在我的config.json文件(胶水清单)中:
{
"server": {
"app": {
"slogan": "We push the web forward"
}
},
"connections": [
{
"port": 3000,
"labels": ["web-ui"]
}
],
"registrations": [
{"plugin": "vision"},
{"plugin": "inert"},
{"plugin": "glue"},
{"plugin": "./plugins/assets"}
]
}
最后,在我的app.js中:
var Hapi = require('hapi');
var Glue = require('glue');
var manifest = require('./config.json');
const options = {
relativeTo: __dirname
};
Glue.compose(manifest, options, function (err, server) {
server.start(function(err) {
console.log('Server running');
});
});
我的问题是,这是使用胶水插件方法提供静态文件的正确方法吗?我看到的所有示例都不使用插件方法,而是使用app.js文件中的app.js()来为来自公共目录的静态文件提供服务。
发布于 2017-05-30 19:55:21
从节点服务静态文件的最佳方法是:不要。
CDN是非常可取的:
按月计算,对于定期申请,两者之间的差额约为数千美元。
在开发环境中,在没有CDN的情况下,您可以从像nginx这样的常规web服务器上提供文件。这也是较少的工作,因为nginx封装在大多数发行版。
这方面还有一些性能考虑因素,您希望尽可能快地保持应用程序服务器的速度。
https://stackoverflow.com/questions/44270174
复制相似问题