Next.js
ইমেজ CDN-এর জন্য @cacherocket/next ইন্সটল করুন next/image, ঐচ্ছিক `/_next/static` CDN, এবং প্রতিটি স্থাপনের পরে উষ্ণ URL গুলি — হোস্টিং Vercel, Netlify, Cloudflare পেজ বা আপনার নিজস্ব নোড হোস্টে থাকে।
10 min read
Next.js-এর জন্য Cache Rocket হল একটি ছবি CDN + ঐচ্ছিক `/_next/static` CDN + ক্যাশে ওয়ার্মিং প্যাকেজ যা আপনার বিদ্যমান হোস্টের পাশে বসে। আপনি SSR এবং এইচটিএমএল যেখানে আছে সেখানে রাখুন (ভার্সেল, নেটলিফাই, ক্লাউডফ্লেয়ার পেজ, বা আপনার নিজস্ব নোড হোস্ট)। Cache Rocket ইমেজ অপ্টিমাইজ করে এবং বিতরণ করে, পরিচালিত CDN থেকে হ্যাশড JS/CSS পরিবেশন করতে পারে এবং প্রতিটি স্থাপনের পরে ইউআরএল উষ্ণ করতে পারে।
@cacherocket/পরবর্তীতে কী অন্তর্ভুক্ত রয়েছে
next.config-এর জন্য withCacheRocket, img.cacherocket.com-এ একটি কাস্টম next/image লোডার, assetPrefix-এর জন্য ঐচ্ছিক assetPrefix (assets.cacherocket.com), এবং সার্ভার সহায়ক (warm, purge, uploadStatic, onVercelDeploy)। এটি Next.js হোস্টিং বা Next.js ডেটা ক্যাশে / use cache APIs প্রতিস্থাপন করে না।
পরিকল্পনা
বিনামূল্যের মধ্যে রয়েছে 25 ইমেজ ট্রান্সফর্ম/মাস এবং 1 GB ইমেজ CDN ব্যান্ডউইথের ট্রায়াল। স্ট্যাটিক অ্যাসেট CDN-এর জন্য একটি প্রদত্ত প্ল্যানে পরিচালিত CDN প্রয়োজন (WordPress হিসাবে একই assets.cacherocket.com মিটার)। প্ল্যান এবং লিমিট দেখুন।
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. যথারীতি পরবর্তী/ছবি ব্যবহার করুন
যখন 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 অ্যাপের জন্য (অথবা আপনি যখন আপনার মূল থেকে JS/CSS হ্যাশ করতে চান), অ্যাকাউন্ট → Next.js-এ স্ট্যাটিক অ্যাসেট CDN চালু করুন। এর জন্য আপনার প্ল্যানে পরিচালিত CDN প্রয়োজন। Cache Rocket স্টোরগুলি আপনার ভাড়াটে পথের অধীনে OVH-এ আউটপুট তৈরি করে এবং 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 ডিপ্লয় হুক (বা সমতুল্য ওয়েবহুক) নির্দেশ করুন:
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 })এনপিএম প্যাকেজ ছাড়া প্ল্যাটফর্ম ওয়েবহুক ইউআরএলগুলি ডিপ্লয় ট্রিগারস এর মধ্যে রয়েছে।
প্যাকেজ রপ্তানি
| রপ্তানি | পাথ আমদানি করুন | উদ্দেশ্য |
|---|---|---|
withCacheRocket | @cacherocket/next | next.config সাহায্যকারী (ইমেজ লোডার + ঐচ্ছিক assetPrefix) |
| ডিফল্ট লোডার | @cacherocket/next/image-loader | কাস্টম next/image লোডার |
warm / purge / uploadStatic / onVercelDeploy | @cacherocket/next/server | সার্ভার-শুধুমাত্র উষ্ণ, পরিস্কার এবং স্ট্যাটিক আপলোড সহায়ক |
upload-static | cacherocket-next CLI | পরিচালিত CDN-এ .next/static-এর পোস্ট-বিল্ড আপলোড |
সাধারণ সমস্যা
- ছবিগুলি এখনও আমার হোস্টে
/_next/imageদিয়ে যায়৷ - নিশ্চিত করুন যে
withCacheRocketআপনার রপ্তানি করা কনফিগারেশন মোড়ক এবংCACHEROCKET_SITE_TOKENবিল্ড টাইমে সেট করা আছে। env vars পরিবর্তন করার পরে পুনরায় স্থাপন করুন। - আমি "অজানা বা নিষ্ক্রিয় সাইট টোকেন" দেখতে পাচ্ছি।
- ছবির URL-এর টোকেন একটি সক্রিয় Next.js সাইটের সাথে মেলে না। বর্তমান সাইটের টোকেন অ্যাকাউন্ট → Next.js থেকে কপি করুন এবং পুনরায় ব্যবহার করুন।
- দূরবর্তী চিত্রগুলি একটি ত্রুটি ফিরিয়ে দেয় বা মূল URL-এ ফিরে যায়৷
- সাইটের অনুমতি তালিকায় ছবির হোস্টনাম যোগ করুন। শুধুমাত্র অনুমোদিত তালিকাভুক্ত উত্স অপ্টিমাইজ করা যেতে পারে। মূল URL-এ সফ্ট-ফেলও ঘটে যখন আপনি প্ল্যান কোটা অতিক্রম করেন।
- আপেক্ষিক
/publicছবি অপ্টিমাইজ করতে ব্যর্থ৷ CACHEROCKET_ASSET_ORIGIN(বা আপনার সর্বজনীন সাইটের উৎস) সেট করুন যাতে Cache Rocket একটি সম্পূর্ণ ফেচ URL সমাধান করতে পারে।- স্ট্যাটিক CDN টগল বলে যে আমার পরিকল্পনায় পরিচালিত CDN অন্তর্ভুক্ত নেই৷
- স্ট্যাটিক
/_next/staticডেলিভারি ম্যানেজড CDN (assets.cacherocket.com) ব্যবহার করে এবংallowCdnএর সাথে একটি প্ল্যান প্রয়োজন। বিনামূল্যের ছবি CDN এখনওimg.cacherocket.comএর মাধ্যমে কাজ করে৷ - স্থাপন করার পর CDN থেকে
/_next/static404s। - সাইটে স্ট্যাটিক CDN সক্ষম করুন,
CACHEROCKET_STATIC_CDN_URLসেট করুন, পুনরায় ব্যবহার করুন যাতেassetPrefixপ্রয়োগ করা হয়, তারপরnext buildএর পরেnpx cacherocket-next upload-staticচালান৷ - উষ্ণায়ন কখনোই চলে না।
- নিশ্চিত করুন যে ওয়েবহুক আপনার
/api/cacherocket/deployরুট হিট করে (বা সর্বজনীন ওয়েবহুক স্থাপন করে), যে সার্ভার-অনলি API কী এবংCACHEROCKET_SITE_IDসেট করা আছে এবং হোস্টনামটি একটি সক্রিয় ওয়ার্মারের সাথে মেলে। ডিপ্লয় ট্রিগার দেখুন।
সাহায্য প্রয়োজন?
অ্যাকাউন্ট → সাপোর্ট খুলুন এবং Next.js বিভাগ বেছে নিন অথবা Troubleshooting থেকে শুরু করুন। আপনার সাইটের আইডি, প্যাকেজ সংস্করণ এবং সমস্যাটি ইমেজ ডেলিভারি বা উষ্ণতা নিয়োজিত কিনা তা অন্তর্ভুক্ত করুন।