静的ファイルをHapiJSに提供するためのプラグインを作成しようとしています。HapiJS - 静的ファイル
:私のconfig.jsonファイル(グルーマニフェスト)内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');
}
:私のファイル構造は、私は次のコードを持っているファイルassets.js /私のプラグイン/資産の中で、次の
|_ plugins
| |_ assets
| |_ assets.js
| |_ package.json
| |_ views
|_ public
| |_ css
|app.js
| config.json
| package.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ファイル内のserver.register()を使用しています。
アセットと静的ファイルを自分で配信する場合は、アプローチは問題ありません。設定とアプローチで節約できます。すぐにすべての資産をCDNに移行する必要はありません。後の開発段階では、CDNに移行することができますが、それを始めるには完全にうまくいきます。 –