chore(ui): 파비콘을 xavis.co.kr favicon.ico와 동일하게 적용

- public/favicon.ico 추가, /favicon.ico 및 partials 링크 갱신
- 인라인 오류 HTML의 icon 링크 정리

Made-with: Cursor
This commit is contained in:
2026-04-08 16:43:28 +09:00
parent 88ec5f2942
commit db60acab66
3 changed files with 6 additions and 6 deletions

BIN
public/favicon.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

View File

@@ -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(
"<!doctype html><html lang=\"ko\"><head><meta charset=\"utf-8\"/><link rel=\"icon\" href=\"/public/images/xavis-logo.png\" type=\"image/png\"/><title>권한 없음</title></head><body><p>관리자 모드가 필요합니다. 좌측 하단 <strong>관리자</strong>에서 토큰을 입력한 뒤 다시 시도하세요.</p><p><a href=\"/ai-cases\">AI 성공 사례 목록으로</a></p></body></html>"
"<!doctype html><html lang=\"ko\"><head><meta charset=\"utf-8\"/><link rel=\"icon\" href=\"/favicon.ico\" type=\"image/x-icon\"/><title>권한 없음</title></head><body><p>관리자 모드가 필요합니다. 좌측 하단 <strong>관리자</strong>에서 토큰을 입력한 뒤 다시 시도하세요.</p><p><a href=\"/ai-cases\">AI 성공 사례 목록으로</a></p></body></html>"
);
}
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(
"<!doctype html><html lang=\"ko\"><head><meta charset=\"utf-8\"/><link rel=\"icon\" href=\"/public/images/xavis-logo.png\" type=\"image/png\"/><title>상세 열람 불가</title><link rel=\"stylesheet\" href=\"/public/styles.css\" /></head><body><div class=\"app-shell\"><div class=\"content-area\" style=\"padding:24px;max-width:560px;\"><h1>상세 열람 불가</h1><p>로그인 후 이용 가능합니다.</p><p><a href=\"/ai-cases\">AI 성공 사례 목록으로</a></p></div></div></body></html>"
"<!doctype html><html lang=\"ko\"><head><meta charset=\"utf-8\"/><link rel=\"icon\" href=\"/favicon.ico\" type=\"image/x-icon\"/><title>상세 열람 불가</title><link rel=\"stylesheet\" href=\"/public/styles.css\" /></head><body><div class=\"app-shell\"><div class=\"content-area\" style=\"padding:24px;max-width:560px;\"><h1>상세 열람 불가</h1><p>로그인 후 이용 가능합니다.</p><p><a href=\"/ai-cases\">AI 성공 사례 목록으로</a></p></div></div></body></html>"
);
}
const slug = (req.params.slug || "").trim();

View File

@@ -1,2 +1,2 @@
<link rel="icon" href="/public/images/xavis-logo.png" type="image/png" />
<link rel="apple-touch-icon" href="/public/images/xavis-logo.png" />
<link rel="icon" href="/favicon.ico" type="image/x-icon" />
<link rel="apple-touch-icon" href="/favicon.ico" />