به صورت کلی راه حل ساده استفاده از حالت SSG است که خروجی پروژه به صورت فایلهای استاتیک تولید میشود و میتوانید فایلهای حاصل را داخل هاست آپلود نمایید.
برای اطلاعات بیشتر در مورد این روش میتوانید مستندات رسمی این فریمورک را مطالعه نمایید:
https://nextjs.org/docs/pages/building-your-application/deploying/static-exports|
راه حل دوم ایجاد یک Back-End برای پروژه است.
برای این کار مراحل زیر انجام خواهد شد:
۱. نوشتن یک Back-End برای پروژه
۲. تنظیم پروژه در cPanel
در ادامه این مراحل را انجام خواهیم داد.
۱. نوشتن یک Back-End برای پروژه
در پوشه اصلی پروژه یک پوشه به نام server ایجاد کنید.
سپس یک فایل با نام index.js ساخته و محتوای زیر را داخل آن قرار دهید:
const { createServer } = require('http')
const { parse } = require('url')
const next = require('next')
const dev = process.env.NODE_ENV !== 'production'
const hostname = 'localhost'
const port = process.env.PORT || 3000
const app = next({ dev, hostname, port })
const handle = app.getRequestHandler()
app.prepare().then(() => {
createServer(async (req, res) => {
try {
const parsedUrl = parse(req.url, true)
const { pathname, query } = parsedUrl
await handle(req, res, parsedUrl)
} catch (err) {
console.error('Error occurred handling', req.url, err)
res.statusCode = 500
res.end('internal server error')
}
}).listen(port, (err) => {
if (err) throw err
console.log(`> Ready on http://${hostname}:${port}`)
})
۲. تنظیم پروژه در cPanel
به این منظور میتوانید تنظیمات را مطابق تصویر زیر انجام دهید:
