fix: serve manifest via API route to bypass nginx 403 on static files
All checks were successful
Deploy to Production / Build and Deploy (push) Successful in 1m32s
All checks were successful
Deploy to Production / Build and Deploy (push) Successful in 1m32s
This commit is contained in:
35
memento-note/app/api/manifest/route.ts
Normal file
35
memento-note/app/api/manifest/route.ts
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
import { NextResponse } from "next/server";
|
||||||
|
|
||||||
|
export async function GET() {
|
||||||
|
return NextResponse.json(
|
||||||
|
{
|
||||||
|
name: "Memento Notes",
|
||||||
|
short_name: "Memento",
|
||||||
|
description: "A smart, local-first note taking app with AI capabilities.",
|
||||||
|
start_url: "/",
|
||||||
|
display: "standalone",
|
||||||
|
background_color: "#F2F0E9",
|
||||||
|
theme_color: "#1C1C1C",
|
||||||
|
icons: [
|
||||||
|
{
|
||||||
|
src: "/icons/icon-192.svg",
|
||||||
|
sizes: "192x192",
|
||||||
|
type: "image/svg+xml",
|
||||||
|
purpose: "any maskable",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
src: "/icons/icon-512.svg",
|
||||||
|
sizes: "512x512",
|
||||||
|
type: "image/svg+xml",
|
||||||
|
purpose: "any maskable",
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
headers: {
|
||||||
|
"Content-Type": "application/manifest+json",
|
||||||
|
"Cache-Control": "public, max-age=86400",
|
||||||
|
},
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
@@ -39,7 +39,7 @@ const jetbrainsMono = JetBrains_Mono({
|
|||||||
export const metadata: Metadata = {
|
export const metadata: Metadata = {
|
||||||
title: "Memento - Your Digital Notepad",
|
title: "Memento - Your Digital Notepad",
|
||||||
description: "A beautiful note-taking app built with Next.js 16",
|
description: "A beautiful note-taking app built with Next.js 16",
|
||||||
manifest: "/manifest.webmanifest",
|
manifest: "/api/manifest",
|
||||||
icons: {
|
icons: {
|
||||||
icon: "/icons/icon-512.svg",
|
icon: "/icons/icon-512.svg",
|
||||||
apple: "/icons/icon-512.svg",
|
apple: "/icons/icon-512.svg",
|
||||||
|
|||||||
@@ -1,27 +0,0 @@
|
|||||||
import type { MetadataRoute } from "next";
|
|
||||||
|
|
||||||
export default function manifest(): MetadataRoute.Manifest {
|
|
||||||
return {
|
|
||||||
name: "Memento Notes",
|
|
||||||
short_name: "Memento",
|
|
||||||
description: "A smart, local-first note taking app with AI capabilities.",
|
|
||||||
start_url: "/",
|
|
||||||
display: "standalone",
|
|
||||||
background_color: "#F2F0E9",
|
|
||||||
theme_color: "#1C1C1C",
|
|
||||||
icons: [
|
|
||||||
{
|
|
||||||
src: "/icons/icon-192.svg",
|
|
||||||
sizes: "192x192",
|
|
||||||
type: "image/svg+xml",
|
|
||||||
purpose: "any maskable",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
src: "/icons/icon-512.svg",
|
|
||||||
sizes: "512x512",
|
|
||||||
type: "image/svg+xml",
|
|
||||||
purpose: "any maskable",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
};
|
|
||||||
}
|
|
||||||
Reference in New Issue
Block a user