Fixed weird favicon caching situation

This commit is contained in:
2025-06-13 15:25:33 -05:00
parent f456e05a05
commit 55fdeb23b3
28 changed files with 126 additions and 47 deletions

View File

Before

Width:  |  Height:  |  Size: 7.2 KiB

After

Width:  |  Height:  |  Size: 7.2 KiB

View File

Before

Width:  |  Height:  |  Size: 7.7 KiB

After

Width:  |  Height:  |  Size: 7.7 KiB

View File

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 10 KiB

View File

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 11 KiB

View File

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 13 KiB

View File

Before

Width:  |  Height:  |  Size: 2.4 KiB

After

Width:  |  Height:  |  Size: 2.4 KiB

View File

Before

Width:  |  Height:  |  Size: 3.1 KiB

After

Width:  |  Height:  |  Size: 3.1 KiB

View File

Before

Width:  |  Height:  |  Size: 3.6 KiB

After

Width:  |  Height:  |  Size: 3.6 KiB

View File

Before

Width:  |  Height:  |  Size: 3.8 KiB

After

Width:  |  Height:  |  Size: 3.8 KiB

View File

Before

Width:  |  Height:  |  Size: 4.3 KiB

After

Width:  |  Height:  |  Size: 4.3 KiB

View File

Before

Width:  |  Height:  |  Size: 4.6 KiB

After

Width:  |  Height:  |  Size: 4.6 KiB

View File

Before

Width:  |  Height:  |  Size: 5.9 KiB

After

Width:  |  Height:  |  Size: 5.9 KiB

View File

Before

Width:  |  Height:  |  Size: 1.9 KiB

After

Width:  |  Height:  |  Size: 1.9 KiB

View File

Before

Width:  |  Height:  |  Size: 3.6 KiB

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.1 KiB

After

Width:  |  Height:  |  Size: 62 KiB

View File

Before

Width:  |  Height:  |  Size: 1.8 KiB

After

Width:  |  Height:  |  Size: 1.8 KiB

View File

Before

Width:  |  Height:  |  Size: 414 B

After

Width:  |  Height:  |  Size: 414 B

View File

Before

Width:  |  Height:  |  Size: 1.8 KiB

After

Width:  |  Height:  |  Size: 1.8 KiB

BIN
public/temp/favicon.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

View File

@ -0,0 +1,16 @@
import type { Metadata } from 'next';
export const generateMetadata = (): Metadata => {
return {
title: 'Forgot Password'
};
};
const ForgotPasswordLayout = ({ children }: Readonly<{ children: React.ReactNode }>) => {
return (
<div>
{children}
</div>
);
};
export default ForgotPasswordLayout;

View File

@ -0,0 +1,16 @@
import type { Metadata } from 'next';
export const generateMetadata = (): Metadata => {
return {
title: 'Profile'
};
};
const ProfileLayout = ({ children }: Readonly<{ children: React.ReactNode }>) => {
return (
<div>
{children}
</div>
);
};
export default ProfileLayout;

View File

@ -0,0 +1,16 @@
import type { Metadata } from 'next';
export const generateMetadata = (): Metadata => {
return {
title: 'Sign In'
};
};
const SignInLayout = ({ children }: Readonly<{ children: React.ReactNode }>) => {
return (
<div>
{children}
</div>
);
};
export default SignInLayout;

View File

@ -0,0 +1,16 @@
import type { Metadata } from 'next';
export const generateMetadata = (): Metadata => {
return {
title: 'Sign Up'
};
};
const SignUpLayout = ({ children }: Readonly<{ children: React.ReactNode }>) => {
return (
<div>
{children}
</div>
);
};
export default SignUpLayout;

87
src/app/layout.tsx Normal file → Executable file
View File

@ -51,12 +51,12 @@ export const generateMetadata = (): Metadata => {
icon: [ icon: [
{ url: '/favicon.ico', type: 'image/x-icon', sizes: 'any' }, { url: '/favicon.ico', type: 'image/x-icon', sizes: 'any' },
{ {
url: '/favicon-16x16.png', url: '/favicon-16.png',
type: 'image/png', type: 'image/png',
sizes: '16x16', sizes: '16x16',
}, },
{ {
url: '/favicon-32x32.png', url: '/favicon-32.png',
type: 'image/png', type: 'image/png',
sizes: '32x32', sizes: '32x32',
}, },
@ -68,46 +68,45 @@ export const generateMetadata = (): Metadata => {
media: '(prefers-color-scheme: dark)', media: '(prefers-color-scheme: dark)',
}, },
{ {
url: '/favicon-16x16.png', url: '/favicon-16.png',
type: 'image/png', type: 'image/png',
sizes: '16x16', sizes: '16x16',
media: '(prefers-color-scheme: dark)', media: '(prefers-color-scheme: dark)',
}, },
{ {
url: '/favicon-32x32.png', url: '/favicon-32.png',
type: 'image/png', type: 'image/png',
sizes: '32x32', sizes: '32x32',
media: '(prefers-color-scheme: dark)', media: '(prefers-color-scheme: dark)',
}, },
{ {
url: '/favicon-96x96.png', url: '/favicon.png',
type: 'image/png', type: 'image/png',
sizes: '96x96', sizes: '96x96',
media: '(prefers-color-scheme: dark)', media: '(prefers-color-scheme: dark)',
}, },
{ {
url: '/appicon/icon-36x36.png', url: '/appicon/icon-36.png',
type: 'image/png', type: 'image/png',
sizes: '36x36', sizes: '36x36',
}, },
{ {
url: '/appicon/icon-48x48.png', url: '/appicon/icon-48.png',
type: 'image/png', type: 'image/png',
sizes: '48x48', sizes: '48x48',
}, },
{ {
url: '/appicon/icon-72x72.png', url: '/appicon/icon-72.png',
type: 'image/png', type: 'image/png',
sizes: '72x72', sizes: '72x72',
}, },
{ {
url: '/appicon/icon-96x96.png', url: '/appicon/icon-96.png',
type: 'image/png', type: 'image/png',
sizes: '96x96', sizes: '96x96',
}, },
{ {
url: '/appicon/icon-144x144.png', url: '/appicon/icon-144.png',
type: 'image/png', type: 'image/png',
sizes: '144x144', sizes: '144x144',
}, },
@ -117,31 +116,31 @@ export const generateMetadata = (): Metadata => {
sizes: '192x192', sizes: '192x192',
}, },
{ {
url: '/appicon/icon-36x36.png', url: '/appicon/icon-36.png',
type: 'image/png', type: 'image/png',
sizes: '36x36', sizes: '36x36',
media: '(prefers-color-scheme: dark)', media: '(prefers-color-scheme: dark)',
}, },
{ {
url: '/appicon/icon-48x48.png', url: '/appicon/icon-48.png',
type: 'image/png', type: 'image/png',
sizes: '48x48', sizes: '48x48',
media: '(prefers-color-scheme: dark)', media: '(prefers-color-scheme: dark)',
}, },
{ {
url: '/appicon/icon-72x72.png', url: '/appicon/icon-72.png',
type: 'image/png', type: 'image/png',
sizes: '72x72', sizes: '72x72',
media: '(prefers-color-scheme: dark)', media: '(prefers-color-scheme: dark)',
}, },
{ {
url: '/appicon/icon-96x96.png', url: '/appicon/icon-96.png',
type: 'image/png', type: 'image/png',
sizes: '96x96', sizes: '96x96',
media: '(prefers-color-scheme: dark)', media: '(prefers-color-scheme: dark)',
}, },
{ {
url: '/appicon/icon-144x144.png', url: '/appicon/icon-144.png',
type: 'image/png', type: 'image/png',
sizes: '144x144', sizes: '144x144',
media: '(prefers-color-scheme: dark)', media: '(prefers-color-scheme: dark)',
@ -155,27 +154,27 @@ export const generateMetadata = (): Metadata => {
], ],
shortcut: [ shortcut: [
{ {
url: '/appicon/icon-36x36.png', url: '/appicon/icon-36.png',
type: 'image/png', type: 'image/png',
sizes: '36x36', sizes: '36x36',
}, },
{ {
url: '/appicon/icon-48x48.png', url: '/appicon/icon-48.png',
type: 'image/png', type: 'image/png',
sizes: '48x48', sizes: '48x48',
}, },
{ {
url: '/appicon/icon-72x72.png', url: '/appicon/icon-72.png',
type: 'image/png', type: 'image/png',
sizes: '72x72', sizes: '72x72',
}, },
{ {
url: '/appicon/icon-96x96.png', url: '/appicon/icon-96.png',
type: 'image/png', type: 'image/png',
sizes: '96x96', sizes: '96x96',
}, },
{ {
url: '/appicon/icon-144x144.png', url: '/appicon/icon-144.png',
type: 'image/png', type: 'image/png',
sizes: '144x144', sizes: '144x144',
}, },
@ -185,31 +184,31 @@ export const generateMetadata = (): Metadata => {
sizes: '192x192', sizes: '192x192',
}, },
{ {
url: '/appicon/icon-36x36.png', url: '/appicon/icon-36.png',
type: 'image/png', type: 'image/png',
sizes: '36x36', sizes: '36x36',
media: '(prefers-color-scheme: dark)', media: '(prefers-color-scheme: dark)',
}, },
{ {
url: '/appicon/icon-48x48.png', url: '/appicon/icon-48.png',
type: 'image/png', type: 'image/png',
sizes: '48x48', sizes: '48x48',
media: '(prefers-color-scheme: dark)', media: '(prefers-color-scheme: dark)',
}, },
{ {
url: '/appicon/icon-72x72.png', url: '/appicon/icon-72.png',
type: 'image/png', type: 'image/png',
sizes: '72x72', sizes: '72x72',
media: '(prefers-color-scheme: dark)', media: '(prefers-color-scheme: dark)',
}, },
{ {
url: '/appicon/icon-96x96.png', url: '/appicon/icon-96.png',
type: 'image/png', type: 'image/png',
sizes: '96x96', sizes: '96x96',
media: '(prefers-color-scheme: dark)', media: '(prefers-color-scheme: dark)',
}, },
{ {
url: '/appicon/icon-144x144.png', url: '/appicon/icon-144.png',
type: 'image/png', type: 'image/png',
sizes: '144x144', sizes: '144x144',
media: '(prefers-color-scheme: dark)', media: '(prefers-color-scheme: dark)',
@ -223,47 +222,47 @@ export const generateMetadata = (): Metadata => {
], ],
apple: [ apple: [
{ {
url: 'appicon/icon-57x57.png', url: 'appicon/icon-57.png',
type: 'image/png', type: 'image/png',
sizes: '57x57', sizes: '57x57',
}, },
{ {
url: 'appicon/icon-60x60.png', url: 'appicon/icon-60.png',
type: 'image/png', type: 'image/png',
sizes: '60x60', sizes: '60x60',
}, },
{ {
url: 'appicon/icon-72x72.png', url: 'appicon/icon-72.png',
type: 'image/png', type: 'image/png',
sizes: '72x72', sizes: '72x72',
}, },
{ {
url: 'appicon/icon-76x76.png', url: 'appicon/icon-76.png',
type: 'image/png', type: 'image/png',
sizes: '76x76', sizes: '76x76',
}, },
{ {
url: 'appicon/icon-114x114.png', url: 'appicon/icon-114.png',
type: 'image/png', type: 'image/png',
sizes: '114x114', sizes: '114x114',
}, },
{ {
url: 'appicon/icon-120x120.png', url: 'appicon/icon-120.png',
type: 'image/png', type: 'image/png',
sizes: '120x120', sizes: '120x120',
}, },
{ {
url: 'appicon/icon-144x144.png', url: 'appicon/icon-144.png',
type: 'image/png', type: 'image/png',
sizes: '144x144', sizes: '144x144',
}, },
{ {
url: 'appicon/icon-152x152.png', url: 'appicon/icon-152.png',
type: 'image/png', type: 'image/png',
sizes: '152x152', sizes: '152x152',
}, },
{ {
url: 'appicon/icon-180x180.png', url: 'appicon/icon-180.png',
type: 'image/png', type: 'image/png',
sizes: '180x180', sizes: '180x180',
}, },
@ -273,55 +272,55 @@ export const generateMetadata = (): Metadata => {
sizes: '192x192', sizes: '192x192',
}, },
{ {
url: 'appicon/icon-57x57.png', url: 'appicon/icon-57.png',
type: 'image/png', type: 'image/png',
sizes: '57x57', sizes: '57x57',
media: '(prefers-color-scheme: dark)', media: '(prefers-color-scheme: dark)',
}, },
{ {
url: 'appicon/icon-60x60.png', url: 'appicon/icon-60.png',
type: 'image/png', type: 'image/png',
sizes: '60x60', sizes: '60x60',
media: '(prefers-color-scheme: dark)', media: '(prefers-color-scheme: dark)',
}, },
{ {
url: 'appicon/icon-72x72.png', url: 'appicon/icon-72.png',
type: 'image/png', type: 'image/png',
sizes: '72x72', sizes: '72x72',
media: '(prefers-color-scheme: dark)', media: '(prefers-color-scheme: dark)',
}, },
{ {
url: 'appicon/icon-76x76.png', url: 'appicon/icon-76.png',
type: 'image/png', type: 'image/png',
sizes: '76x76', sizes: '76x76',
media: '(prefers-color-scheme: dark)', media: '(prefers-color-scheme: dark)',
}, },
{ {
url: 'appicon/icon-114x114.png', url: 'appicon/icon-114.png',
type: 'image/png', type: 'image/png',
sizes: '114x114', sizes: '114x114',
media: '(prefers-color-scheme: dark)', media: '(prefers-color-scheme: dark)',
}, },
{ {
url: 'appicon/icon-120x120.png', url: 'appicon/icon-120.png',
type: 'image/png', type: 'image/png',
sizes: '120x120', sizes: '120x120',
media: '(prefers-color-scheme: dark)', media: '(prefers-color-scheme: dark)',
}, },
{ {
url: 'appicon/icon-144x144.png', url: 'appicon/icon-144.png',
type: 'image/png', type: 'image/png',
sizes: '144x144', sizes: '144x144',
media: '(prefers-color-scheme: dark)', media: '(prefers-color-scheme: dark)',
}, },
{ {
url: 'appicon/icon-152x152.png', url: 'appicon/icon-152.png',
type: 'image/png', type: 'image/png',
sizes: '152x152', sizes: '152x152',
media: '(prefers-color-scheme: dark)', media: '(prefers-color-scheme: dark)',
}, },
{ {
url: 'appicon/icon-180x180.png', url: 'appicon/icon-180.png',
type: 'image/png', type: 'image/png',
sizes: '180x180', sizes: '180x180',
media: '(prefers-color-scheme: dark)', media: '(prefers-color-scheme: dark)',

16
src/app/status/layout.tsx Normal file
View File

@ -0,0 +1,16 @@
import type { Metadata } from 'next';
export const generateMetadata = (): Metadata => {
return {
title: 'Status Table'
};
};
const StatusLayout = ({ children }: Readonly<{ children: React.ReactNode }>) => {
return (
<div>
{children}
</div>
);
};
export default StatusLayout;

View File

@ -62,7 +62,7 @@ export const SignInWithApple = ({
> >
<div className='flex items-center gap-2'> <div className='flex items-center gap-2'>
<Image <Image
src='/icons/apple.svg' src='/icons/auth/apple.svg'
alt='Apple logo' alt='Apple logo'
className='invert-75 dark:invert-25' className='invert-75 dark:invert-25'
width={22} width={22}

View File

@ -56,7 +56,7 @@ export const SignInWithMicrosoft = ({
> >
<div className='flex items-center gap-2'> <div className='flex items-center gap-2'>
<Image <Image
src='/icons/microsoft.svg' src='/icons/auth/microsoft.svg'
alt='Microsoft logo' alt='Microsoft logo'
width={20} width={20}
height={20} height={20}

View File

@ -14,7 +14,7 @@ const Footer = () => {
hover:bg-gradient-to-tr hover:from-[#35363F] hover:to-[#23242F] hover:bg-gradient-to-tr hover:from-[#35363F] hover:to-[#23242F]
flex items-center gap-2 transition-all duration-200' flex items-center gap-2 transition-all duration-200'
> >
<Image src='/icons/gitea.svg' alt='Gitea' width={20} height={20} /> <Image src='/icons/misc/gitea.svg' alt='Gitea' width={20} height={20} />
<span className='text-white'>View Source Code on Gitea</span> <span className='text-white'>View Source Code on Gitea</span>
</Link> </Link>
</div> </div>