57

これは本当に基本的な質問ですが、node.js/Express アプリのファビコンを変更しようとしています。

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

私はまだデフォルトのファビコンを取得しています。これは私のapp.configure関数にあります。はい、 に a があることを確認し ましたコンソールにもa については何もないため、このコード行が無視されていると思います。関数の他のすべて (ポートの設定、ビュー ディレクトリの設定、テンプレート エンジンの設定など) は正常に動作しているように見えますが、なぜこのコード行が実行されないのでしょうか?favicon.ico/public/images/favicon.icofavicon.ico

私が試したこと

  • ブラウザのキャッシュを空にする
  • ターミナルを再起動してnode app.js再度実行する
  • ここで{ maxAge: 2592000000 }説明されているように、追加

前もって感謝します。

更新:動作するようになりました。詳細については、以下の私の回答を参照してください。

4

8 に答える 8

84

初めて Safari でサイトにアクセスしてみましたが (通常は Chrome を使用しています)、正しいファビコンが表示されていることに気付きました。Chrome のキャッシュをもう一度 (2 回) クリアしようとしましたが、うまくいきませんでしたが、さらに検索したところ、どうやらファビコンがキャッシュに保存されていないことがわかりました。ここで説明されている方法を使用して「ファビコンを更新」したところ、うまくいきました。

リンクが切れた場合の方法は次のとおりです(上記のリンクから変更)。

  1. Chrome/問題のあるブラウザを開く
  2. favicon.ico ファイルに直接移動します (例: http://localhost:3000/favicon.ico )。
  3. F5 キーを押すか、適切なブラウザーの更新 (リロード) ボタンを押して、favicon.ico URL を更新します。
  4. ブラウザを閉じてウェブサイトを開くと、ファビコンが更新されました。
于 2012-07-25T21:48:20.243 に答える
1

ブラウザのキャッシュをクリアしてみましたか? 古いファビコンがまだキャッシュに残っている可能性があります。

于 2012-07-25T20:42:21.907 に答える
1

エラーを防ぐためのスマイリー ファビコン:

 var favicon = new Buffer('AAABAAEAEBAQAAAAAAAoAQAAFgAAACgAAAAQAAAAIAAAAAEABAAAAAAAgAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAA/4QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEREQAAAAAAEAAAEAAAAAEAAAABAAAAEAAAAAAQAAAQAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAEAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//wAA//8AAP//AAD8HwAA++8AAPf3AADv+wAA7/sAAP//AAD//wAA+98AAP//AAD//wAA//8AAP//AAD//wAA', 'base64'); 
 app.get("/favicon.ico", function(req, res) {
  res.statusCode = 200;
  res.setHeader('Content-Length', favicon.length);
  res.setHeader('Content-Type', 'image/x-icon');
  res.setHeader("Cache-Control", "public, max-age=2592000");                // expiers after a month
  res.setHeader("Expires", new Date(Date.now() + 2592000000).toUTCString());
  res.end(favicon);
 });

上記のコードでアイコンを変更するには

ここでアイコンを作るかもしれません: http://www.favicon.cc/またはここ: http://favicon-generator.org

おそらくここでbase64に変換してください:http://base64converter.com/

次に、アイコンのベース64値を置き換えます

一般情報 パーソナライズされたお気に入りアイコンの作成方法

アイコンはフォトショップまたはインクスケープを使用して作成されます。インクスケープの次にフォトショップを使用して、鮮やかさと色の補正を行います (画像->調整メニュー)。

クイック アイコンについては、http ://www.clker.com/ に移動し、ベクター クリップ アートを選択して、svg としてダウンロードします。次に、それをinkscapeに持ってきて、色を変更したり、パーツを削除したり、別のベクタークリップアート画像から何かを追加したりします。エクスポートするには、エクスポートするパーツを選択してファイル>エクスポートをクリックし、ファビコンの場合は16x16、32x32などのサイズを選択し、さらに編集するには128x128または256x256 . ico パッケージには、複数のアイコン サイズを含めることができます。16x16 ピクセルのお気に入りアイコンとともに、ウェブサイトへのリンク用の高品質のアイコンを含めることができます。

次に、フォトショップで画像を強化します。バイブランス バイベル ラウンド マスクなど。

次に、ファビコンを生成する Web サイトの 1 つにこの画像をアップロードします。アイコンを編集するためのウィンドウ用のプログラムもあります (「windows icon editor opensource」のように検索して、1 つのアイコン内に異なるサイズの 2 つの画像を作成する方法を理解してください)。

ファビコンをウェブサイトに追加します。ルート ドメインのファイル フォルダーに favicon.ico をファイルとして配置するだけです。たとえば、静的ファイルを含むパブリックフォルダーのnodejsにあります。単純なファイルの上のコードのような特別なものである必要はありません。

于 2015-09-05T22:12:27.767 に答える
0

明示せずにこれを行う方法:

if (req.method == "GET") {
     if (/favicon\.ico/.test(req.url)) {
        fs.readFile("home/usr/path/favicon.ico", function(err, data) {
            if (err) {
                console.log(err);
            } else {
                res.setHeader("Content-Type","image/x-icon");
                res.end(data);
            }
     });
}
于 2014-07-16T15:36:00.337 に答える