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 件のコメント:
コメントを投稿