feat(ui): 파비콘을 xavis-logo.png로 통일
- partials/favicon.ejs로 icon·apple-touch-icon 링크 - 전 페이지 head에 include, /favicon.ico는 동일 PNG 제공 - 인라인 403 HTML에도 favicon 링크 Made-with: Cursor
This commit is contained in:
@@ -1106,6 +1106,10 @@ 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"));
|
||||
});
|
||||
/** 채팅 마크다운 뷰어(marked + DOMPurify) — node_modules에서만 제공 */
|
||||
app.use("/vendor/marked", express.static(path.join(ROOT_DIR, "node_modules/marked/lib")));
|
||||
app.use("/vendor/dompurify", express.static(path.join(ROOT_DIR, "node_modules/dompurify/dist")));
|
||||
@@ -1166,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\"/><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=\"/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>"
|
||||
);
|
||||
}
|
||||
const editSlug = (req.query.edit || "").trim();
|
||||
@@ -1206,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\"/><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=\"/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>"
|
||||
);
|
||||
}
|
||||
const slug = (req.params.slug || "").trim();
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<%- include('partials/favicon') %>
|
||||
<title>썸네일 이벤트 로그</title>
|
||||
<link rel="stylesheet" href="/public/styles.css" />
|
||||
</head>
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<%- include('partials/favicon') %>
|
||||
<title>사용자 현황관리 - XAVIS</title>
|
||||
<link rel="stylesheet" href="/public/styles.css" />
|
||||
</head>
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<%- include('partials/favicon') %>
|
||||
<title><%= story.title %> - AI 성공 사례 - XAVIS</title>
|
||||
<link rel="stylesheet" href="/public/styles.css" />
|
||||
</head>
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<%- include('partials/favicon') %>
|
||||
<title>AI 성공 사례 관리 - XAVIS</title>
|
||||
<link rel="stylesheet" href="/public/styles.css" />
|
||||
<style>
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<%- include('partials/favicon') %>
|
||||
<title>AI 성공 사례 - XAVIS</title>
|
||||
<link rel="stylesheet" href="/public/styles.css" />
|
||||
</head>
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<%- include('partials/favicon') %>
|
||||
<title>AI - XAVIS</title>
|
||||
<link rel="stylesheet" href="/public/styles.css" />
|
||||
</head>
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<%- include('partials/favicon') %>
|
||||
<title>프롬프트 라이브러리 - XAVIS</title>
|
||||
<link rel="stylesheet" href="/public/styles.css" />
|
||||
</head>
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<%- include('partials/favicon') %>
|
||||
<title>AX 과제 신청 - XAVIS</title>
|
||||
<link rel="stylesheet" href="/public/styles.css" />
|
||||
</head>
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<%- include('partials/favicon') %>
|
||||
<title>채팅 - XAVIS</title>
|
||||
<link rel="stylesheet" href="/public/styles.css" />
|
||||
</head>
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<%- include('partials/favicon') %>
|
||||
<title>학습센터</title>
|
||||
<link rel="stylesheet" href="/public/styles.css" />
|
||||
</head>
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<%- include('partials/favicon') %>
|
||||
<% var admTitle = typeof adminPageTitle !== 'undefined' ? adminPageTitle : '학습센터 관리'; %>
|
||||
<title><%= admTitle %> - XAVIS</title>
|
||||
<link rel="stylesheet" href="/public/styles.css" />
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<%- include('partials/favicon') %>
|
||||
<title>콘텐츠 수정 - XAVIS</title>
|
||||
<link rel="stylesheet" href="/public/styles.css" />
|
||||
</head>
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<%- include('partials/favicon') %>
|
||||
<title><%= typeof pageTitle !== 'undefined' ? pageTitle : '학습센터' %> - XAVIS</title>
|
||||
<link rel="stylesheet" href="/public/styles.css" />
|
||||
</head>
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<%- include('partials/favicon') %>
|
||||
<title><%= lecture.title %> - 학습센터 - XAVIS</title>
|
||||
<link rel="stylesheet" href="/public/styles.css" />
|
||||
</head>
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<%- include('partials/favicon') %>
|
||||
<title><%= lecture.title %> - 학습센터 - XAVIS</title>
|
||||
<link rel="stylesheet" href="/public/styles.css" />
|
||||
</head>
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<%- include('partials/favicon') %>
|
||||
<title><%= lecture.title %> - PPT 뷰어</title>
|
||||
<link rel="stylesheet" href="/public/styles.css" />
|
||||
</head>
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<%- include('partials/favicon') %>
|
||||
<title><%= lecture.title %> - 동영상 강의</title>
|
||||
<link rel="stylesheet" href="/public/styles.css" />
|
||||
</head>
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<%- include('partials/favicon') %>
|
||||
<title><%= lecture.title %> - YouTube 강의</title>
|
||||
<link rel="stylesheet" href="/public/styles.css" />
|
||||
</head>
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<%- include('partials/favicon') %>
|
||||
<title>서비스 접속 - XAVIS</title>
|
||||
<link rel="stylesheet" href="/public/styles.css" />
|
||||
<style>
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<%- include('partials/favicon') %>
|
||||
<title>회의록 AI - XAVIS</title>
|
||||
<link rel="stylesheet" href="/public/styles.css" />
|
||||
</head>
|
||||
|
||||
2
views/partials/favicon.ejs
Normal file
2
views/partials/favicon.ejs
Normal file
@@ -0,0 +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" />
|
||||
@@ -3,6 +3,7 @@
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<%- include('partials/favicon') %>
|
||||
<title>업무 체크리스트 AI - XAVIS</title>
|
||||
<link rel="stylesheet" href="/public/styles.css" />
|
||||
</head>
|
||||
|
||||
Reference in New Issue
Block a user