fix(build): serve favicon + all res/ icons at their referenced /public paths
The static-copy step landed the android icons at dist/public/android/ (stripBase dropped the res/ segment), never copied public/res/apple/ or public/favicon.ico at all, and the manifest pointed at /res/android/ — so every PWA icon, apple-touch icon, og:image, and the favicon 404'd on the live server. Copy all of public/res -> dist/public/res and public/favicon.ico -> dist/public/, and point manifest.json icons at ./public/res/android/ — matching the /public/res and /public/favicon.ico paths index.html already uses. Verified in dist/. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
+12
-12
@@ -11,58 +11,58 @@
|
||||
"theme_color": "#980000",
|
||||
"icons": [
|
||||
{
|
||||
"src": "./res/android/android-chrome-36x36.png",
|
||||
"src": "./public/res/android/android-chrome-36x36.png",
|
||||
"sizes": "36x36",
|
||||
"type": "image/png"
|
||||
},
|
||||
{
|
||||
"src": "./res/android/android-chrome-48x48.png",
|
||||
"src": "./public/res/android/android-chrome-48x48.png",
|
||||
"sizes": "48x48",
|
||||
"type": "image/png"
|
||||
},
|
||||
{
|
||||
"src": "./res/android/android-chrome-72x72.png",
|
||||
"src": "./public/res/android/android-chrome-72x72.png",
|
||||
"sizes": "72x72",
|
||||
"type": "image/png"
|
||||
},
|
||||
{
|
||||
"src": "./res/android/android-chrome-96x96.png",
|
||||
"src": "./public/res/android/android-chrome-96x96.png",
|
||||
"sizes": "96x96",
|
||||
"type": "image/png"
|
||||
},
|
||||
{
|
||||
"src": "./res/android/android-chrome-144x144.png",
|
||||
"src": "./public/res/android/android-chrome-144x144.png",
|
||||
"sizes": "144x144",
|
||||
"type": "image/png"
|
||||
},
|
||||
{
|
||||
"src": "./res/android/android-chrome-192x192.png",
|
||||
"src": "./public/res/android/android-chrome-192x192.png",
|
||||
"sizes": "192x192",
|
||||
"type": "image/png"
|
||||
},
|
||||
{
|
||||
"src": "./res/android/android-chrome-256x256.png",
|
||||
"src": "./public/res/android/android-chrome-256x256.png",
|
||||
"sizes": "256x256",
|
||||
"type": "image/png"
|
||||
},
|
||||
{
|
||||
"src": "./res/android/android-chrome-384x384.png",
|
||||
"src": "./public/res/android/android-chrome-384x384.png",
|
||||
"sizes": "384x384",
|
||||
"type": "image/png"
|
||||
},
|
||||
{
|
||||
"src": "./res/android/android-chrome-512x512.png",
|
||||
"src": "./public/res/android/android-chrome-512x512.png",
|
||||
"sizes": "512x512",
|
||||
"type": "image/png"
|
||||
},
|
||||
{
|
||||
"src": "./res/android/maskable-192x192.png",
|
||||
"src": "./public/res/android/maskable-192x192.png",
|
||||
"sizes": "192x192",
|
||||
"type": "image/png",
|
||||
"purpose": "maskable"
|
||||
},
|
||||
{
|
||||
"src": "./res/android/maskable-512x512.png",
|
||||
"src": "./public/res/android/maskable-512x512.png",
|
||||
"sizes": "512x512",
|
||||
"type": "image/png",
|
||||
"purpose": "maskable"
|
||||
@@ -77,7 +77,7 @@
|
||||
"url": "/",
|
||||
"icons": [
|
||||
{
|
||||
"src": "res/android/android-chrome-96x96.png",
|
||||
"src": "public/res/android/android-chrome-96x96.png",
|
||||
"sizes": "96x96"
|
||||
}
|
||||
]
|
||||
|
||||
+11
-2
@@ -38,9 +38,18 @@ const copyFiles = {
|
||||
rename: { stripBase: true },
|
||||
},
|
||||
{
|
||||
src: 'public/res/android',
|
||||
// All of public/res/ (android + apple icons, logos, svg) → dist/public/res/,
|
||||
// matching the /public/res/... paths used by index.html and manifest.json.
|
||||
// (The old android-only target stripped `res/` and landed at /public/android/,
|
||||
// so every icon 404'd — apple/ + favicon weren't copied at all.)
|
||||
src: 'public/res',
|
||||
dest: 'public/',
|
||||
rename: { stripBase: 2 },
|
||||
rename: { stripBase: 1 },
|
||||
},
|
||||
{
|
||||
src: 'public/favicon.ico',
|
||||
dest: 'public/',
|
||||
rename: { stripBase: 1 },
|
||||
},
|
||||
{
|
||||
src: 'public/locales',
|
||||
|
||||
Reference in New Issue
Block a user