update speed

This commit is contained in:
2026-06-04 20:10:32 +08:00
parent 2ebc8ab9dd
commit 3325bc52ef
34 changed files with 123 additions and 8 deletions
Vendored
BIN
View File
Binary file not shown.
+10
View File
@@ -8,6 +8,7 @@
"name": "fiveq-website", "name": "fiveq-website",
"version": "1.0.0", "version": "1.0.0",
"dependencies": { "dependencies": {
"@fontsource/manrope": "^5.2.8",
"@iconify-json/lucide": "^1.2.32", "@iconify-json/lucide": "^1.2.32",
"astro": "^5.7.10", "astro": "^5.7.10",
"astro-icon": "^1.1.5" "astro-icon": "^1.1.5"
@@ -590,6 +591,15 @@
"node": ">=18" "node": ">=18"
} }
}, },
"node_modules/@fontsource/manrope": {
"version": "5.2.8",
"resolved": "https://registry.npmmirror.com/@fontsource/manrope/-/manrope-5.2.8.tgz",
"integrity": "sha512-gJHJmcuUk7qWcNCfcAri/DJQtXtBYqi9yKratr4jXhSo0I3xUtNNKI+igQIcw5c+m95g0vounk8ZnX/kb8o0TA==",
"license": "OFL-1.1",
"funding": {
"url": "https://github.com/sponsors/ayuhito"
}
},
"node_modules/@iconify-json/lucide": { "node_modules/@iconify-json/lucide": {
"version": "1.2.101", "version": "1.2.101",
"resolved": "https://mirrors.cloud.tencent.com/npm/@iconify-json/lucide/-/lucide-1.2.101.tgz", "resolved": "https://mirrors.cloud.tencent.com/npm/@iconify-json/lucide/-/lucide-1.2.101.tgz",
+3 -2
View File
@@ -8,8 +8,9 @@
"preview": "astro preview" "preview": "astro preview"
}, },
"dependencies": { "dependencies": {
"@fontsource/manrope": "^5.2.8",
"@iconify-json/lucide": "^1.2.32",
"astro": "^5.7.10", "astro": "^5.7.10",
"astro-icon": "^1.1.5", "astro-icon": "^1.1.5"
"@iconify-json/lucide": "^1.2.32"
} }
} }
+36
View File
@@ -0,0 +1,36 @@
# Cache static assets for 1 year (content hashed filenames ensure cache busting)
/_astro/*
Cache-Control: public, max-age=31536000, immutable
# Fonts — cache for 1 year
/fonts/*
Cache-Control: public, max-age=31536000, immutable
# Images — cache for 1 year
/images/*
Cache-Control: public, max-age=31536000, immutable
# HTML pages — no cache (always fetch latest)
/index.html
Cache-Control: no-cache
/about/*
Cache-Control: no-cache
/curriculum/*
Cache-Control: no-cache
/faculty/*
Cache-Control: no-cache
/teaching-philosophy/*
Cache-Control: no-cache
/en/*
Cache-Control: no-cache
/ja/*
Cache-Control: no-cache
/fr/*
Cache-Control: no-cache
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+73
View File
@@ -0,0 +1,73 @@
/* Self-hosted Manrope font — eliminates slow Google Fonts CDN dependency */
@font-face {
font-family: 'Manrope';
src: url('/fonts/manrope-latin-400-normal.woff2') format('woff2');
font-weight: 400;
font-style: normal;
font-display: swap;
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
font-family: 'Manrope';
src: url('/fonts/manrope-latin-ext-400-normal.woff2') format('woff2');
font-weight: 400;
font-style: normal;
font-display: swap;
unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
font-family: 'Manrope';
src: url('/fonts/manrope-latin-600-normal.woff2') format('woff2');
font-weight: 600;
font-style: normal;
font-display: swap;
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
font-family: 'Manrope';
src: url('/fonts/manrope-latin-ext-600-normal.woff2') format('woff2');
font-weight: 600;
font-style: normal;
font-display: swap;
unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
font-family: 'Manrope';
src: url('/fonts/manrope-latin-700-normal.woff2') format('woff2');
font-weight: 700;
font-style: normal;
font-display: swap;
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
font-family: 'Manrope';
src: url('/fonts/manrope-latin-ext-700-normal.woff2') format('woff2');
font-weight: 700;
font-style: normal;
font-display: swap;
unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
font-family: 'Manrope';
src: url('/fonts/manrope-latin-800-normal.woff2') format('woff2');
font-weight: 800;
font-style: normal;
font-display: swap;
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
font-family: 'Manrope';
src: url('/fonts/manrope-latin-ext-800-normal.woff2') format('woff2');
font-weight: 800;
font-style: normal;
font-display: swap;
unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
Binary file not shown.

Before

Width:  |  Height:  |  Size: 60 KiB

After

Width:  |  Height:  |  Size: 8.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 219 KiB

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 63 KiB

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 68 KiB

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 140 KiB

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 80 KiB

After

Width:  |  Height:  |  Size: 9.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 89 KiB

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 45 KiB

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 30 KiB

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 84 KiB

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 43 KiB

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 954 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 106 KiB

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 100 KiB

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 96 KiB

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 71 KiB

After

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 67 KiB

After

Width:  |  Height:  |  Size: 8.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 58 KiB

After

Width:  |  Height:  |  Size: 8.4 KiB

+1 -6
View File
@@ -28,12 +28,7 @@ const htmlLangAttr = htmlLang[lang];
<link rel="alternate" hreflang={htmlLang[l]} href={hrefFor(l, currentSegment)} /> <link rel="alternate" hreflang={htmlLang[l]} href={hrefFor(l, currentSegment)} />
))} ))}
<link rel="alternate" hreflang="x-default" href={hrefFor(DEFAULT_LANG, currentSegment)} /> <link rel="alternate" hreflang="x-default" href={hrefFor(DEFAULT_LANG, currentSegment)} />
<link rel="preconnect" href="https://fonts.googleapis.com" /> <link rel="stylesheet" href="/fonts/manrope.css" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<link
href="https://fonts.googleapis.com/css2?family=Manrope:wght@400;600;700;800&display=swap"
rel="stylesheet"
/>
<script is:inline> <script is:inline>
(function () { (function () {
try { try {