From 1e1ac4e91d86c260e27bc946d77b38c797d5f5ba Mon Sep 17 00:00:00 2001 From: KoyoNoguchi Date: Thu, 15 Oct 2026 19:04:38 +0900 Subject: [PATCH] Add favicon Link /assets/favicon.ico from every page and serve /favicon.ico without requiring the access key (browsers request it on their own). Co-Authored-By: Claude Opus 5.5 --- public/assets/favicon.ico | Bin 0 -> 6462 bytes public/create.html | 1 + public/key.html | 1 + public/lobby.html | 1 + public/table.html | 1 + server/index.js | 1 + 6 files changed, 5 insertions(+) create mode 100644 public/assets/favicon.ico diff --git a/public/assets/favicon.ico b/public/assets/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..2798718792a44955a2bb975467a8ee32f766b5a6 GIT binary patch literal 6462 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 Y0G-Zkzwqy4>i_@%07*qoM6N<$g11SiivR!s literal 0 HcmV?d00001 diff --git a/public/create.html b/public/create.html index d04329c..1c93e5d 100644 --- a/public/create.html +++ b/public/create.html @@ -6,6 +6,7 @@ テーブル作成 - Hold'em Night + diff --git a/public/key.html b/public/key.html index e2b33ce..c96c0e7 100644 --- a/public/key.html +++ b/public/key.html @@ -6,6 +6,7 @@ Hold'em Night + diff --git a/public/lobby.html b/public/lobby.html index b6426c0..f67aa16 100644 --- a/public/lobby.html +++ b/public/lobby.html @@ -6,6 +6,7 @@ Hold'em Night + diff --git a/public/table.html b/public/table.html index 5084471..38c2694 100644 --- a/public/table.html +++ b/public/table.html @@ -6,6 +6,7 @@ テーブル - Hold'em Night + diff --git a/server/index.js b/server/index.js index 90048ad..8d5dd6d 100644 --- a/server/index.js +++ b/server/index.js @@ -67,6 +67,7 @@ const tables = new TableManager(); // ---------- 認証不要 ---------- app.use('/assets', express.static(path.join(PUBLIC, 'assets'), { index: false, dotfiles: 'deny' })); +app.get('/favicon.ico', (req, res) => res.sendFile(path.join(PUBLIC, 'assets', 'favicon.ico'))); app.get('/robots.txt', (req, res) => res.type('text/plain').send('User-agent: *\nDisallow: /\n')); app.get('/key', (req, res) => { if (auth.isAuthed(req)) return res.redirect(auth.safeNext(req.query.next));