express.js
express.js では、デフォルトでexpress.js自身が提供するfaviconを配信するよう、コードが自動生成される。具体的には、express.jsが提供するアプリケーションのひな形を生成するコマンドを、
$ expressのように実行すると、
- app.js
:(略)
// all environments
app.set('port', process.env.PORT || 3000);
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'jade');
app.use(express.favicon());
app.use(express.logger('dev'));
app.use(express.json());
app.use(express.urlencoded());
app.use(express.methodOverride());
app.use(express.cookieParser('your secret here'));
app.use(express.session());
app.use(app.router);
app.use(require('less-middleware')({ src: path.join(__dirname, 'public') }));
app.use(express.static(path.join(__dirname, 'public')));
:(略)
というコードが出力される。上記の、
express.favicon()が、デフォルトのfaviconの使用を定義するコード。
express.favicon()
express.favicon()は、nodeアプリのためのミドルウェアで、connect というのがあって、こいつが提供する機能の1つ。詳しくは、ここにドキュメントがあった。読むと、
By default serves the connect favicon, or the favicon located by the given path.とあるので、デフォルトだとconnectのfaviconを配信するし、パスが与えられればそいつを配信するよ、ってことだね。(同じページにソースも載っている。)
自作のfaviconを配信する。
なので、次のように自作favicon.icoへのパスをfavicon()関数に渡してあげればよさそう。
app.use(express.favicon(__dirname + '/public/images/favicon.ico', {
maxAge: 2592000000 // キャッシュの有効期限
}));

0 件のコメント:
コメントを投稿