148

私は最近 Node.js で作業を開始し、app.js ファイルには次の行があります。

app.use(express.favicon());

では、独自のカスタム favicon.ico を設定するにはどうすればよいですか?

4

15 に答える 15

262

Express 4 で

favicon ミドルウェアをインストールしてから、次のようにします。

var favicon = require('serve-favicon');

app.use(favicon(__dirname + '/public/images/favicon.ico'));

または、pathモジュールを使用して:

app.use(favicon(path.join(__dirname,'public','images','favicon.ico')));

(このソリューションは Express 3 アプリでも機能することに注意してください)

エクスプレス3で

API によると.favicon、場所パラメーターを受け入れます。

app.use(express.favicon("public/images/favicon.ico")); 

ほとんどの場合、これが必要になる場合があります (vsync が提案したように):

app.use(express.favicon(__dirname + '/public/images/favicon.ico'));

または、さらに良いことに、pathモジュールを使用します(Druskaが提案したように):

app.use(express.favicon(path.join(__dirname, 'public','images','favicon.ico'))); 

ファビコンが静的より優れている理由

パッケージの説明によると:

  1. このモジュールはアイコンをメモリにキャッシュし、ディスク アクセスをスキップしてパフォーマンスを向上させます。
  2. このモジュールは、ETagファイル システムのプロパティではなく、アイコンの内容に基づいて を提供します。
  3. このモジュールは、最も互換性のあるContent-Type.
于 2013-03-17T16:32:27.620 に答える
8
app.use(express.favicon(__dirname + '/public/images/favicon.ico')); 

なしでローカルで動作させました__dirname +が、展開したサーバーで動作させることができませんでした。

于 2013-08-05T22:25:37.380 に答える
4

Express > 4.0 を使用している場合は、serve-faviconを使用できます。

于 2014-05-27T16:06:39.467 に答える
2

外部ファイルを使用せず、ファイルを使用しないソリューションexpress.static(たとえば、超軽量の 1 ファイル Web サーバーとサイト) が必要な場合は、ファイルを Base64 として使用serve-faviconおよびエンコードできます。favicon.icoこのような:

const favicon = require('serve-favicon');
const imgBuffer = new Buffer.from('IMAGE_AS_BASE64_STRING_GOES_HERE', 'base64');
// assuming app is already defined
app.use(favicon(imgBuffer));

IMAGE_AS_BASE64_STRING_GOES_HEREファビコン ファイルを Base64 としてエンコードした結果に置き換えます。オンラインでそれを行うことができるサイトがたくさんあります。検索してください。

サーバーやブラウザを再起動しlocalhostて、ウェブ上で動作していることを確認する必要があることに注意してください。

于 2020-07-25T03:57:28.883 に答える
0

以下にリストされているコードは機能します。

var favicon = require('serve-favicon');

app.use(favicon(__dirname + '/public/images/favicon.ico'));

ブラウザを更新するか、キャッシュをクリアしてください。

于 2016-03-17T20:00:44.643 に答える