diff --git a/public/favicon.ico b/public/favicon.ico new file mode 100644 index 0000000..eca3cd0 Binary files /dev/null and b/public/favicon.ico differ diff --git a/server.js b/server.js index 7712036..4f67b9b 100644 --- a/server.js +++ b/server.js @@ -1107,8 +1107,8 @@ async function syncAutoChecklistFromMeetingMinutes(openai, { pgPool, email, meet app.use("/public", express.static(path.join(ROOT_DIR, "public"))); app.get("/favicon.ico", (req, res) => { - res.type("image/png"); - res.sendFile(path.join(ROOT_DIR, "public", "images", "xavis-logo.png")); + res.type("image/x-icon"); + res.sendFile(path.join(ROOT_DIR, "public", "favicon.ico")); }); /** 채팅 마크다운 뷰어(marked + DOMPurify) — node_modules에서만 제공 */ app.use("/vendor/marked", express.static(path.join(ROOT_DIR, "node_modules/marked/lib"))); @@ -1170,7 +1170,7 @@ pageRouter.get("/ai-explore/task-checklist", (req, res) => pageRouter.get("/ai-cases/write", (req, res) => { if (!res.locals.adminMode) { return res.status(403).send( - "권한 없음

관리자 모드가 필요합니다. 좌측 하단 관리자에서 토큰을 입력한 뒤 다시 시도하세요.

AI 성공 사례 목록으로

" + "권한 없음

관리자 모드가 필요합니다. 좌측 하단 관리자에서 토큰을 입력한 뒤 다시 시도하세요.

AI 성공 사례 목록으로

" ); } const editSlug = (req.query.edit || "").trim(); @@ -1210,7 +1210,7 @@ pageRouter.get("/ai-cases/:slug", async (req, res, next) => { try { if (!isAiSuccessStoryDetailAllowed(req, res)) { return res.status(403).send( - "상세 열람 불가

상세 열람 불가

로그인 후 이용 가능합니다.

AI 성공 사례 목록으로

" + "상세 열람 불가

상세 열람 불가

로그인 후 이용 가능합니다.

AI 성공 사례 목록으로

" ); } const slug = (req.params.slug || "").trim(); diff --git a/views/partials/favicon.ejs b/views/partials/favicon.ejs index 9a7d93d..28b8983 100644 --- a/views/partials/favicon.ejs +++ b/views/partials/favicon.ejs @@ -1,2 +1,2 @@ - - + +