Next.js
Installieren Sie @cacherocket/next für Image-CDN über next/image, optionales `/_next/static`-CDN und warme URLs nach jeder Bereitstellung – das Hosting bleibt auf Vercel, Netlify, Cloudflare Pages oder Ihrem eigenen Node-Host.
10 min read
Cache Rocket für Next.js ist ein Image-CDN + optionales `/_next/static`-CDN + Cache-Warming-Paket, das sich neben Ihrem vorhandenen Host befindet.Sie behalten SSR und HTML dort, wo sie sind (Vercel, Netlify, Cloudflare Pages oder Ihr eigener Node-Host).Cache Rocket optimiert und liefert Bilder, kann gehashtes JS/CSS vom verwalteten CDN bereitstellen und kann URLs nach jeder Bereitstellung erwärmen.
Was @cacherocket/next beinhaltet
withCacheRocket für next.config, ein benutzerdefinierter next/image-Loader auf img.cacherocket.com, optionaler assetPrefix für /_next/static über Managed CDN (assets.cacherocket.com) und Serverhilfsprogramme (warm, purge, uploadStatic, onVercelDeploy).Es ersetzt nicht das Next.js-Hosting oder die Next.js-Datencache-/use cache-APIs.
Pläne
Kostenlos beinhaltet eine Testversion von 25 Bildtransformationen pro Monat und 1 GB Bild-CDN-Bandbreite.Statisches Asset-CDN erfordert Managed CDN in einem kostenpflichtigen Plan (gleicher assets.cacherocket.com-Zähler wie WordPress).Siehe Pläne und Limits.
1. Erstellen Sie eine Next.js-Site
Öffnen Sie im Dashboard Konto → Next.js , erstellen Sie eine Site für Ihren Hostnamen und kopieren Sie das Site-Token, die Site-ID und die API-Schlüssel.Fügen Sie für jeden Ursprung, von dem Sie Bilder laden, Einträge zur Bildhost-Zulassungsliste hinzu (Ihr Site-Hostname ist immer enthalten).
2. Installieren Sie das Paket
@cacherocket/next ist in der öffentlichen NPM-Registrierung veröffentlicht:
npm i @cacherocket/next3. Umgebungsvariablen
# Public — safe in the browser / image URLs
CACHEROCKET_SITE_TOKEN=site_xxx
# Absolute origin for relative /public images (optional but recommended)
CACHEROCKET_ASSET_ORIGIN=https://www.example.com
# Optional — customer static CDN (/_next/static) from Account → Next.js
# Do not use CacheRocket.com's internal CACHEROCKET_CDN_URL
CACHEROCKET_STATIC_CDN_URL=https://assets.cacherocket.com/org_…/site_…/static
# Server-only — warm / purge / deploy / static upload
CACHEROCKET_PUBLIC_KEY=...
CACHEROCKET_SECRET_KEY=...
CACHEROCKET_SITE_ID=...4. Wrappen Sie next.config
import type { NextConfig } from 'next'
import { withCacheRocket } from '@cacherocket/next'
const nextConfig: NextConfig = {
// your config
}
export default withCacheRocket(
{
siteToken: process.env.CACHEROCKET_SITE_TOKEN,
assetOrigin: process.env.CACHEROCKET_ASSET_ORIGIN,
staticCdnUrl: process.env.CACHEROCKET_STATIC_CDN_URL,
},
nextConfig
)5. Verwenden Sie next/image wie gewohnt
Bevorzugen Sie absolute Bild-URLs oder relative Pfade, wenn CACHEROCKET_ASSET_ORIGIN festgelegt ist.Der Loader schreibt Anfragen in pfadbasierte Transformations-URLs auf img.cacherocket.com um:
https://img.cacherocket.com/i/site_xxx/w_1200,q_75,f_auto/https%3A%2F%2F...Soft-Fail bei Quote
Wenn ein Plan oder ein monatliches Transformationskontingent überschritten wird, leitet Cache Rocket zur ursprünglichen Bild-URL weiter, sodass die Seite weiterhin geladen wird.
6. Optional: statisches Asset-CDN (`/_next/static`)
Aktivieren Sie für selbst gehostete oder nicht von Vercel stammende Next.js-Apps (oder wenn Sie gehashtes JS/CSS von Ihrem Ursprung haben möchten) Statisches Asset-CDN auf Konto → Next.js .Dies erfordert Managed CDN in Ihrem Plan.Cache Rocket speichert die Build-Ausgabe in OVH unter Ihrem Mandantenpfad und stellt sie von Bunny auf assets.cacherocket.com bereit.HTML und SSR bleiben auf Ihrem Host.
Kopieren Sie staticCdnUrl in CACHEROCKET_STATIC_CDN_URL (niemals CacheRocket .coms internes CACHEROCKET_CDN_URL).Laden Sie nach jedem next build Assets hoch:
npx cacherocket-next upload-staticimport { uploadStatic } from '@cacherocket/next/server'
await uploadStatic()7. Beim Einsatz erwärmen
Fügen Sie einen Route-Handler hinzu und richten Sie einen Vercel Deploy Hook (oder einen gleichwertigen Webhook) darauf:
import { onVercelDeploy } from '@cacherocket/next/server'
export const POST = onVercelDeploy()Oder rufen Sie Helfer über ein Skript oder einen CI-Schritt an:
import { warm, purge } from '@cacherocket/next/server'
await warm({ urls: ['https://www.example.com/'] })
await purge({ rewarm: true })Plattform-Webhook-URLs ohne das npm-Paket werden unter Trigger bereitstellen behandelt.
Paketexporte
| Export | Pfad importieren | Zweck |
|---|---|---|
withCacheRocket | @cacherocket/next | next.config-Helfer (Bildlader + optional assetPrefix ) |
| Standardlader | @cacherocket/next/image-loader | Benutzerdefinierter next/image-Loader |
warm / purge / uploadStatic / onVercelDeploy | @cacherocket/next/server | Nur für den Server verfügbare Warm-, Purge- und statische Upload-Helfer |
upload-static | cacherocket-next CLI | Post-Build-Upload von .next/static auf Managed CDN |
Häufige Probleme
- Bilder laufen immer noch über
/_next/imageauf meinem Host. - Bestätigen Sie, dass
withCacheRocketIhre exportierte Konfiguration umschließt und dassCACHEROCKET_SITE_TOKENzum Zeitpunkt der Erstellung festgelegt wird.Nach Änderung der Umgebungsvariablen erneut bereitstellen. - Ich sehe „Unbekanntes oder inaktives Site-Token“.
- Das Token in der Bild-URL stimmt nicht mit einer aktiven Next.js-Site überein.Kopieren Sie das aktuelle Site-Token von Konto → Next.js und stellen Sie es erneut bereit.
- Remote-Bilder geben einen Fehler zurück oder greifen auf die ursprüngliche URL zurück.
- Fügen Sie den Hostnamen des Bildes zur Site-Zulassungsliste hinzu.Nur zugelassene Ursprünge können optimiert werden.Ein Soft-Fail zur ursprünglichen URL kommt auch dann vor, wenn Ihr Plankontingent überschritten ist.
- Relative
/public-Bilder können nicht optimiert werden. - Legen Sie
CACHEROCKET_ASSET_ORIGIN(oder den Ursprung Ihrer öffentlichen Website) fest, damit Cache Rocket eine absolute Abruf-URL auflösen kann. - Beim Umschalten zwischen statischem CDN wird angezeigt, dass mein Plan kein verwaltetes CDN beinhaltet.
- Die statische
/_next/static-Bereitstellung verwendet Managed CDN (assets.cacherocket.com) und erfordert einen Plan mitallowCdn.Image CDN auf Free funktioniert weiterhin überimg.cacherocket.com. /_next/static404s vom CDN nach der Bereitstellung.- Aktivieren Sie statisches CDN auf der Site, legen Sie
CACHEROCKET_STATIC_CDN_URLfest, stellen Sie es erneut bereit, damitassetPrefixangewendet wird, und führen Sie dannnpx cacherocket-next upload-staticnachnext buildaus. - Deploy Warming wird nie ausgeführt.
- Bestätigen Sie, dass der Webhook Ihre
/api/cacherocket/deploy-Route (oder den öffentlichen Bereitstellungs-Webhook) erreicht, dass die Nur-Server-API-Schlüssel undCACHEROCKET_SITE_IDfestgelegt sind und dass der Hostname mit einem aktiven Warmer übereinstimmt.Siehe Trigger bereitstellen.
Brauchen Sie Hilfe?
Öffnen Sie Konto → Support und wählen Sie die Kategorie Next.js oder beginnen Sie mit Fehlerbehebung.Geben Sie Ihre Site-ID und die Paketversion an und geben Sie an, ob es sich bei dem Problem um die Bildbereitstellung oder die Bereitstellungserwärmung handelt.