Compare commits
2 Commits
eb186cbfeb
...
0c5f10ae18
| Author | SHA1 | Date | |
|---|---|---|---|
| 0c5f10ae18 | |||
| 5e73bfdd28 |
@@ -1,14 +1,7 @@
|
||||
/* 디자인 토큰 — 폰트 + CSS 변수(라이트/다크). 가장 먼저 로드. */
|
||||
|
||||
/* Pretendard — 폐쇄망 대비 로컬 호스팅(가변 폰트 1개). 파일이 없으면 시스템 폰트로 폴백.
|
||||
파일 받기: public/fonts/PretendardVariable.woff2 (README 안내 참고) */
|
||||
@font-face {
|
||||
font-family: 'Pretendard';
|
||||
font-weight: 45 920;
|
||||
font-style: normal;
|
||||
font-display: swap;
|
||||
src: url('/public/fonts/PretendardVariable.woff2') format('woff2-variations');
|
||||
}
|
||||
/* Pretendard — CDN(jsdelivr)에서 로드. views/_header 의 <link> 로 불러온다(인터넷 연결 환경).
|
||||
미로드 시 base.css 의 시스템 폰트 스택으로 폴백. */
|
||||
|
||||
:root {
|
||||
color-scheme: light;
|
||||
|
||||
@@ -44,6 +44,9 @@ app.use((req, res, next) => {
|
||||
|
||||
app.get("/healthz", (_req, res) => res.json({ ok: true }));
|
||||
|
||||
// 브라우저가 페이지마다 자동 요청하는 /favicon.ico → svg 파비콘으로 넘긴다(콘솔 404 제거).
|
||||
app.get("/favicon.ico", (_req, res) => res.redirect(301, "/public/favicon.svg"));
|
||||
|
||||
// fetch(AJAX) 요청인지: app.js 가 X-Requested-With 를 붙인다.
|
||||
const isAjax = (req) =>
|
||||
req.get("X-Requested-With") === "fetch" || (req.get("Accept") || "").includes("application/json");
|
||||
|
||||
@@ -5,6 +5,8 @@
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<title><%= brand %></title>
|
||||
<link rel="icon" href="/public/favicon.svg" type="image/svg+xml" />
|
||||
<!-- Pretendard 폰트 (CDN · 인터넷 연결 환경) -->
|
||||
<link rel="stylesheet" as="style" crossorigin href="https://cdn.jsdelivr.net/gh/orioncactus/pretendard@v1.3.9/dist/web/static/pretendard.min.css" />
|
||||
<link rel="stylesheet" href="/public/css/tokens.css" />
|
||||
<link rel="stylesheet" href="/public/css/base.css" />
|
||||
<link rel="stylesheet" href="/public/css/layout.css" />
|
||||
|
||||
Reference in New Issue
Block a user