Next.js
Встановіть @cacherocket/next для CDN образів через next/image, додатковий `/_next/static` CDN і гарячі URL-адреси після кожного розгортання — хостинг залишається на сторінках Vercel, Netlify, Cloudflare або вашому власному хості Node.
10 min read
Cache Rocket для Next.js — це пакет CDN із зображенням + необов’язковий CDN `/_next/static` + підігрів кешу, який розташовується поруч із наявним хостом.Ви зберігаєте SSR і HTML там, де вони є (Vercel, Netlify, Cloudflare Pages або ваш власний хост Node).Cache Rocket оптимізує та доставляє зображення, може обслуговувати хешований JS/CSS із керованого CDN і може підігрівати URL-адреси після кожного розгортання.
Що включає @cacherocket/next
withCacheRocket для next.config , спеціальний завантажувач next/image на img.cacherocket.com , додатковий assetPrefix для /_next/static через керований CDN ( assets.cacherocket.com ) і помічники сервера ( warm , purge , uploadStatic ,onVercelDeploy ).Він не замінює хостинг Next.js або Next.js Data Cache/use cache API.
Плани
Безкоштовно включає пробну версію 25 трансформацій зображень на місяць і пропускну здатність CDN для зображень 1 ГБ.Static asset CDN вимагає керованого CDN на платному плані (той самий лічильник assets.cacherocket.com, що й WordPress).Див. [Плани та обмеження] (/documentation/plans-and-limits).
1. Створіть сайт Next.js
На інформаційній панелі відкрийте Обліковий запис → Next.js , створіть сайт для свого імені хоста та скопіюйте маркер сайту, ідентифікатор сайту та ключі API.Додайте записи в білий список хостів зображень для кожного джерела, з якого ви завантажуєте зображення (ім’я хосту вашого сайту завжди включено).
2. Встановіть пакет
@cacherocket/next опубліковано в публічному реєстрі npm:
npm i @cacherocket/next3. Змінні середовища
# 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. Оберніть 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. Використовуйте далі/зображення як зазвичай
Надавати перевагу абсолютним URL-адресам зображень або відносним шляхам, якщо встановлено CACHEROCKET_ASSET_ORIGIN.Завантажувач переписує запити на URL-адреси трансформації на основі шляху на img.cacherocket.com:
https://img.cacherocket.com/i/site_xxx/w_1200,q_75,f_auto/https%3A%2F%2F...М'яка помилка квоти
Якщо перевищено план або місячну квоту на перетворення, Cache Rocket переспрямовує на вихідну URL-адресу зображення, щоб сторінка все ще завантажувалася.
6. Необов’язково: статичний ресурс CDN ( `/_next/static` )
Для додатків Next.js, розміщених на власному хості або не від Vercel (або якщо ви бажаєте, щоб хешований JS/CSS вийшов із вашого джерела), увімкніть Static asset CDN в Обліковий запис → Next.js .Для цього у вашому плані потрібен керований CDN.Cache Rocket зберігає вихід збірки в OVH під вашим шляхом клієнта та обслуговує його від Bunny на assets.cacherocket.com.HTML і SSR залишаються на вашому хості.
Копіюйте staticCdnUrl у CACHEROCKET_STATIC_CDN_URL (ніколи не CacheRocket .com внутрішній CACHEROCKET_CDN_URL).Після кожного next build завантажуйте ресурси:
npx cacherocket-next upload-staticimport { uploadStatic } from '@cacherocket/next/server'
await uploadStatic()7. Тепло при розгортанні
Додайте обробник маршруту та наведіть на нього хук Vercel Deploy (або еквівалентний вебхук):
import { onVercelDeploy } from '@cacherocket/next/server'
export const POST = onVercelDeploy()Або викликайте помічників зі сценарію чи кроку CI:
import { warm, purge } from '@cacherocket/next/server'
await warm({ urls: ['https://www.example.com/'] })
await purge({ rewarm: true })URL-адреси вебхуку платформи без пакета npm описано в [Тригери розгортання] (/documentation/deploy-triggers).
Експорт пакетів
| Експорт | Шлях імпорту | призначення |
|---|---|---|
withCacheRocket | @cacherocket/next | помічник next.config (завантажувач зображень + додатковий assetPrefix) |
| завантажувач за замовчуванням | @cacherocket/next/image-loader | Спеціальний завантажувач next/image |
warm / purge / uploadStatic / onVercelDeploy | @cacherocket/next/server | Помічники зігрівання, очищення та статичного завантаження лише для сервера |
upload-static | cacherocket-next CLI | Завантаження .next/static після збірки в керований CDN |
Загальні проблеми
- Зображення все ще проходять через
/_next/imageна моєму хості. - Переконайтеся, що
withCacheRocketобгортає вашу експортовану конфігурацію та щоCACHEROCKET_SITE_TOKENвстановлено під час створення.Повторне розгортання після зміни env vars. - Я бачу «Невідомий або неактивний маркер сайту».
- Маркер в URL-адресі зображення не відповідає активному сайту Next.js.Скопіюйте поточний маркер сайту з Обліковий запис → Next.js і повторно розгорніть.
- Віддалені зображення повертають помилку або повертаються до початкової URL-адреси.
- Додайте ім’я хосту зображення до білого списку сайту.Оптимізувати можна лише джерела з білого списку.М'яка помилка вихідної URL-адреси також відбувається, коли ви перевищили квоту плану.
- Не вдається оптимізувати відносні зображення
/public. - Встановіть
CACHEROCKET_ASSET_ORIGIN(або джерело загальнодоступного сайту), щоб Cache Rocket міг розпізнати абсолютну URL-адресу отримання. - Перемикач Static CDN повідомляє, що мій план не включає керований CDN.
- Статична доставка
/_next/staticвикористовує керований CDN (assets.cacherocket.com) і вимагає плану зallowCdn.Image CDN на Free все ще працює черезimg.cacherocket.com. /_next/static404 з CDN після розгортання.- Увімкніть статичний CDN на сайті, установіть
CACHEROCKET_STATIC_CDN_URL, повторно розгорніть, щоб застосуватиassetPrefix, а потім запустітьnpx cacherocket-next upload-staticпісляnext build. - Deploy heat ніколи не запускається.
- Переконайтеся, що вебхук потрапляє на ваш маршрут
/api/cacherocket/deploy(або загальнодоступний вебхук розгортання), що налаштовано ключі API лише для сервера таCACHEROCKET_SITE_ID, а ім’я хосту відповідає активному обігрівачу.Див. [Розгортання тригерів] (/documentation/deploy-triggers).
Потрібна допомога?
Відкрийте Обліковий запис → Підтримка та виберіть категорію Next.js або почніть із Усунення несправностей.Укажіть ідентифікатор свого сайту, версію пакета та інформацію про те, чи проблема пов’язана з доставкою зображення чи розгортанням утеплення.