105 lines
4.5 KiB
JavaScript
105 lines
4.5 KiB
JavaScript
/** @type {import('next').NextConfig} */
|
|
const nextConfig = {
|
|
output: 'standalone',
|
|
skipTrailingSlashRedirect: true,
|
|
images: {
|
|
unoptimized: false,
|
|
domains: ['www.qrmaster.net', 'qrmaster.net', 'images.qrmaster.net'],
|
|
formats: ['image/webp', 'image/avif'],
|
|
deviceSizes: [640, 750, 828, 1080, 1200, 1920, 2048, 3840],
|
|
imageSizes: [16, 32, 48, 64, 96, 128, 256, 384],
|
|
},
|
|
experimental: {
|
|
serverComponentsExternalPackages: ['@prisma/client', 'bcryptjs'],
|
|
},
|
|
// Allow build to succeed even with prerender errors
|
|
// Pages with useSearchParams() will be rendered dynamically at runtime
|
|
staticPageGenerationTimeout: 120,
|
|
onDemandEntries: {
|
|
maxInactiveAge: 25 * 1000,
|
|
pagesBufferLength: 2,
|
|
},
|
|
poweredByHeader: false,
|
|
async redirects() {
|
|
return [
|
|
{
|
|
source: '/create-qr',
|
|
destination: '/dynamic-qr-code-generator',
|
|
permanent: true,
|
|
},
|
|
{
|
|
source: '/guide/tracking-analytics',
|
|
destination: '/learn/tracking',
|
|
permanent: true,
|
|
},
|
|
{
|
|
source: '/guide/bulk-qr-code-generation',
|
|
destination: '/learn/developer',
|
|
permanent: true,
|
|
},
|
|
{
|
|
source: '/guide/qr-code-best-practices',
|
|
destination: '/learn/basics',
|
|
permanent: true,
|
|
},
|
|
{
|
|
source: '/tools/phone-qr-code',
|
|
destination: '/tools/call-qr-code-generator',
|
|
permanent: true,
|
|
},
|
|
{
|
|
source: '/barcode-generator',
|
|
destination: '/tools/barcode-generator',
|
|
permanent: true,
|
|
},
|
|
{
|
|
source: '/bar-code-generator',
|
|
destination: '/tools/barcode-generator',
|
|
permanent: true,
|
|
},
|
|
{
|
|
source: '/qr-code-for/breweries-tap-rooms',
|
|
destination: '/qr-code-for/breweries',
|
|
permanent: true,
|
|
},
|
|
{
|
|
source: '/qr-code-for/wineries-vineyards',
|
|
destination: '/qr-code-for/wineries',
|
|
permanent: true,
|
|
},
|
|
{
|
|
source: '/qr-code-for/catering-businesses',
|
|
destination: '/qr-code-for/catering',
|
|
permanent: true,
|
|
},
|
|
{
|
|
source: '/qr-code-for/spas-wellness-centers',
|
|
destination: '/qr-code-for/spas',
|
|
permanent: true,
|
|
},
|
|
// Additional likely old slugs from previous site version
|
|
{ source: '/qr-code-for/bars-pubs', destination: '/qr-code-for/bars', permanent: true },
|
|
{ source: '/qr-code-for/nightclubs-venues', destination: '/qr-code-for/nightclubs', permanent: true },
|
|
{ source: '/qr-code-for/dental-practices', destination: '/qr-code-for/dentists', permanent: true },
|
|
{ source: '/qr-code-for/pet-groomers', destination: '/qr-code-for/pet-grooming', permanent: true },
|
|
{ source: '/qr-code-for/clothing-apparel-stores', destination: '/qr-code-for/clothing-stores', permanent: true },
|
|
{ source: '/qr-code-for/florists-flower-shops', destination: '/qr-code-for/florists', permanent: true },
|
|
{ source: '/qr-code-for/pet-stores-groomers', destination: '/qr-code-for/pet-stores', permanent: true },
|
|
{ source: '/qr-code-for/hardware-diy-stores', destination: '/qr-code-for/hardware-stores', permanent: true },
|
|
{ source: '/qr-code-for/universities-colleges', destination: '/qr-code-for/universities', permanent: true },
|
|
{ source: '/qr-code-for/museums-exhibitions', destination: '/qr-code-for/museums', permanent: true },
|
|
{ source: '/qr-code-for/public-libraries', destination: '/qr-code-for/libraries', permanent: true },
|
|
{ source: '/qr-code-for/theaters-performing-arts', destination: '/qr-code-for/theaters', permanent: true },
|
|
{ source: '/qr-code-for/cinemas-movie-theaters', destination: '/qr-code-for/cinemas', permanent: true },
|
|
{ source: '/qr-code-for/churches-places-of-worship', destination: '/qr-code-for/churches', permanent: true },
|
|
{ source: '/qr-code-for/stadiums-sports-venues', destination: '/qr-code-for/stadiums', permanent: true },
|
|
{ source: '/qr-code-for/airports-travel-hubs', destination: '/qr-code-for/airports', permanent: true },
|
|
{ source: '/qr-code-for/photography-studios', destination: '/qr-code-for/photographers', permanent: true },
|
|
{ source: '/qr-code-for/trade-shows-exhibitions', destination: '/qr-code-for/trade-shows', permanent: true },
|
|
{ source: '/qr-code-for/accounting-firms', destination: '/qr-code-for/accountants', permanent: true },
|
|
];
|
|
},
|
|
};
|
|
|
|
export default nextConfig;
|