From db60acab660aac31a1e0a417cf86d34140812b62 Mon Sep 17 00:00:00 2001 From: dsyoon Date: Wed, 8 Apr 2026 16:43:28 +0900 Subject: [PATCH] =?UTF-8?q?chore(ui):=20=ED=8C=8C=EB=B9=84=EC=BD=98?= =?UTF-8?q?=EC=9D=84=20xavis.co.kr=20favicon.ico=EC=99=80=20=EB=8F=99?= =?UTF-8?q?=EC=9D=BC=ED=95=98=EA=B2=8C=20=EC=A0=81=EC=9A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - public/favicon.ico 추가, /favicon.ico 및 partials 링크 갱신 - 인라인 오류 HTML의 icon 링크 정리 Made-with: Cursor --- public/favicon.ico | Bin 0 -> 15406 bytes server.js | 8 ++++---- views/partials/favicon.ejs | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) create mode 100644 public/favicon.ico diff --git a/public/favicon.ico b/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..eca3cd08bb89872749afe4cd1baa394a93428450 GIT binary patch literal 15406 zcmeHNd5{#<8SiBg1ldDi5q4*%Umw#m)6+dW!-U=K?in0d4+dA%#1Tx48Y9MdAmSfJ ztJK9Jf|LcKpa{kjl|uoQLqww}1yPYhc6w%K7j~EB5Di|bm`YVro8Q;716$D;D^J?g`{YB7Nlw$L*-% zxB%*)30f5LadWSK0|G5Ay#oqrdrMTcbxDGbOy4A4?_XV+J+epo@U((I&n+>Vol`D!7 z5Cs1fs(OxBWa3Oo3SKM-zPr@ql3}8#HA_->qQDEcG3I?z6vIvAdnl2!G&9p3w(Le# zRR=NVdtPMnCXxA;ilYCQNIxP$hs1o>Ns@B0$Kx4-vU$*ZF8sP4ey|@bYp|RBoU)0+UxdX0(pbVC6EPI0xkkB z0{>eGB$ICqOs9KG`+Mblb7Mz`T2`*?d&v~k`+MnY+mLE6|2FZXoNR{^ZB3!LePyu0 z_K^=px@U-HWq%klv&#^Byr`R*HHaTx)T|tY?!|QR*43dg!Dscv;g@wI zztF+J$W78LJEIwyb?Dz(*nclPexFdp&8J-wl%%=|O6;+bv2%7+XxdehAOxn%>P2ca z`a~7Vrpki$Q#CfjOXVa=?D>&`5WQ3s$2J?rj^UzcO%}x<;y!f-VyGJxXc+clN z@0qW9)Zx@75@D6hTfIf#t5+mBZlKpYvYGde*$&yoykoMAuU)HnJT+98u0qV4n}NQ6 zP46(0%rd6{KZ2m0B?!_6#E$KVL7zj6_!{E8-!m3CKO7E^LcF<^;zr1OB2yMnTo{Q& zDybgIo`Q;!WHLFBF;)o-e8^u3U9Wq+J`rVoS8oY0xD)ojfc?)P&xVujh$DMTP@x1d z>Nv!$`yo97^F0PR%9wvr(Z0x}2YFta0Ns0``_~%z%;e38X`iI_WCU?(Ib!Cy@O?M> z(Li~6JTHdpb3!QIRtKAJ!#-mD>~zh@_Tc$9YO-@Q)k~+-rO@?b=yS{=<`y<>f7<|_hS6@ zgsj%9=>H1+{|K4(5sc+!ertC%`2hS*r@k>>`Xg+7A$onye!ssOdf!C;GO|xNkbR2N z;n%B3KaHj(e!o?Q{{}Asw-fN;LxGpJ;y=U>f(d&pY`5rE_U<|(+Z?-a*HE&ROm?2G zTbZBeR_@+tytR(wTAcq=jH#mqL77f{;d#G+epR85Kg0WJqIXPpi7C?vYsRFhD7%34 z;VMD9I`sV()R~3xbfwp;<6p9Sxd^xjxCpoixCs2`5ukk%Y|(O8LrUCz5}@E-E&?tB zE&?tBE&?tBE&?tBE&?tB|L+K-)2)L@XrH%lPqkl{dQ0Tgropk;feJde5KXjK{VNhS z_l*jl_fO_Lr8D7o$5j|&}nOCJ9OodpU+z4V&)wnV>+!B-b;t|Fd**71BlA&bsUAPFOiz4_dOdR?^YrnbEY_?Z z)Xx=kkxr|d^eqO@gF46Ng%h7Xswa-4-O+_wqWeDZKy$$P6vR4oAKBI7M<3A|Gxu=Z z>QdV0SB>niptHl_dm1y~8!~qkFty*Mb2d@zwQEfW&my6H_dxw(MG4(p7p{LsP?N2r z)#Ur5qt^E7U}ULJQKmJ?foqI$2v-5%O?iIEn1ziqo&ZN(2nY; zV;`3#lq<>=iKw}euQS?e0{UGszdt=mQqz;<&}HZQ)k`Lko`8P4PC95F&{(Ir8y=q% zoc(&!ZUx5O{bWu6^Pu0P<^nZkBLq*`&sohGPw{-kkE*JwhEci4!wunUhD~6#6|b|J zvL_YKkeVdpPUrdZ6z{3{E%M*vYb)mP{D@$Z;|lW(?NpT;#5|QrzP55Jt1W*;5JviA z)!b0tQ$88()}Y<{X!k*(edW8%Q!$Tppy?@o6LUFSzfSKPvZZ^ix3H0I5m;<(Iw$7rpisnkO zuHi9;fLpo{_I5zN1gCQp_CJE`qi1kT8;I*F`j0+#plq|?m8PTJi|9uy`nW(*lmPG; zDhmPV`iB2~=8^-67ZZ5jL$H%W`^WLVqbNK%28({x#j^@Z8u;H?;1Y==JmtTG8MsWIm!qiHh(2zC*htS- z!F_?hyx<@B4}Q?${O$wx`@uzmFIDP_V=orlRngGUUT#^RmSO!m6YF^@WIF3|SE$jx z6&&DFyoY1R+lz0;we?MhF_(*H7`XusZ%Vk(IO64?JX;1kV-^{{cA1pa?b_y)mM z7Pw2_Jm3OeQ~m>VZbO^9 zop&tAmk}2UUmt>RAHw%eXU#M+AH(qUWL9L$Jp9~v2q--xzmP(HUJ0<0gXhC^4(mOFT3RO8V^34Rb-PAltZmX^bL|)`wE! zlYzU3^7`i80IY{)G`6w+j3k_^tE-1nom%A4m?VXLS1FAXDs$#B<`ku=J<5w~NwKbb icM)(Aa1n43a1n43a1n43a1n43a1n43a1r=c1pWrek1CA- literal 0 HcmV?d00001 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 @@ - - + +