Merge pull request #35 from hamster1963/force-static

Set main page to force-static for cache and CDN
This commit is contained in:
仓鼠 2024-09-30 23:41:36 +08:00 committed by GitHub
commit 7d5a2ddbf2
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 29 additions and 2 deletions

View File

@ -1,7 +1,13 @@
import { unstable_setRequestLocale } from "next-intl/server";
import ServerList from "../../../components/ServerList";
import ServerOverview from "../../../components/ServerOverview";
export default function Home() {
export default function Home({
params: { locale },
}: {
params: { locale: string };
}) {
unstable_setRequestLocale(locale);
return (
<div className="mx-auto grid w-full max-w-5xl gap-4 md:gap-6">
<ServerOverview />

View File

@ -11,6 +11,8 @@ import { Inter as FontSans } from "next/font/google";
import { ThemeProvider } from "next-themes";
import { Viewport } from "next";
import { cn } from "@/lib/utils";
import { locales } from "@/i18n-metadata";
import { unstable_setRequestLocale } from "next-intl/server";
const fontSans = FontSans({
subsets: ["latin"],
@ -35,6 +37,12 @@ export const viewport: Viewport = {
userScalable: false,
};
export const dynamic = "force-static";
export async function generateStaticParams() {
return locales.map((locale) => ({ locale }));
}
export default function LocaleLayout({
children,
params: { locale },
@ -42,6 +50,8 @@ export default function LocaleLayout({
children: React.ReactNode;
params: { locale: string };
}) {
unstable_setRequestLocale(locale);
const messages = useMessages();
return (
<html lang={locale} suppressHydrationWarning>

View File

@ -1,3 +1,9 @@
import withBundleAnalyzer from "@next/bundle-analyzer";
const bundleAnalyzer = withBundleAnalyzer({
enabled: process.env.ANALYZE === "true",
});
import createNextIntlPlugin from "next-intl/plugin";
const withNextIntl = createNextIntlPlugin();
import withPWAInit from "@ducanh2912/next-pwa";
@ -16,5 +22,10 @@ const withPWA = withPWAInit({
const nextConfig = {
output: "standalone",
reactStrictMode: true,
logging: {
fetches: {
fullUrl: true,
},
},
};
export default withPWA(withNextIntl(nextConfig));
export default bundleAnalyzer(withPWA(withNextIntl(nextConfig)));