updates
This commit is contained in:
@@ -15,17 +15,51 @@ interface JobPageProps {
|
||||
}>;
|
||||
}
|
||||
|
||||
// Generate static params for all job positions at build time (optional - for better performance)
|
||||
// This pre-generates known pages, but new pages can still be generated on-demand
|
||||
export async function generateStaticParams() {
|
||||
try {
|
||||
// Use internal API URL for server-side requests
|
||||
const apiUrl = process.env.INTERNAL_API_URL || process.env.NEXT_PUBLIC_API_URL || 'http://127.0.0.1:1086';
|
||||
const response = await fetch(
|
||||
`${apiUrl}/api/career/jobs`,
|
||||
{
|
||||
method: 'GET',
|
||||
headers: getApiHeaders(),
|
||||
next: { revalidate: 60 }, // Revalidate every minute
|
||||
}
|
||||
);
|
||||
|
||||
if (!response.ok) {
|
||||
console.error('Error fetching jobs for static params:', response.status);
|
||||
return [];
|
||||
}
|
||||
|
||||
const data = await response.json();
|
||||
const jobs = data.results || data;
|
||||
|
||||
return jobs.map((job: JobPosition) => ({
|
||||
slug: job.slug,
|
||||
}));
|
||||
} catch (error) {
|
||||
console.error('Error generating static params for jobs:', error);
|
||||
return [];
|
||||
}
|
||||
}
|
||||
|
||||
// Generate metadata for each job page
|
||||
export async function generateMetadata({ params }: JobPageProps): Promise<Metadata> {
|
||||
const { slug } = await params;
|
||||
|
||||
try {
|
||||
// Use internal API URL for server-side requests
|
||||
const apiUrl = process.env.INTERNAL_API_URL || process.env.NEXT_PUBLIC_API_URL || 'http://127.0.0.1:1086';
|
||||
const response = await fetch(
|
||||
`${API_CONFIG.BASE_URL}/api/career/jobs/${slug}/`,
|
||||
`${apiUrl}/api/career/jobs/${slug}`,
|
||||
{
|
||||
method: 'GET',
|
||||
headers: getApiHeaders(),
|
||||
next: { revalidate: 3600 }, // Revalidate every hour
|
||||
next: { revalidate: 60 }, // Revalidate every minute
|
||||
}
|
||||
);
|
||||
|
||||
@@ -55,12 +89,14 @@ const JobPage = async ({ params }: JobPageProps) => {
|
||||
const { slug } = await params;
|
||||
|
||||
try {
|
||||
// Use internal API URL for server-side requests
|
||||
const apiUrl = process.env.INTERNAL_API_URL || process.env.NEXT_PUBLIC_API_URL || 'http://127.0.0.1:1086';
|
||||
const response = await fetch(
|
||||
`${API_CONFIG.BASE_URL}/api/career/jobs/${slug}/`,
|
||||
`${apiUrl}/api/career/jobs/${slug}`,
|
||||
{
|
||||
method: 'GET',
|
||||
headers: getApiHeaders(),
|
||||
next: { revalidate: 3600 }, // Revalidate every hour
|
||||
next: { revalidate: 60 }, // Revalidate every minute
|
||||
}
|
||||
);
|
||||
|
||||
|
||||
@@ -12,7 +12,7 @@ import ServicesInitAnimations from "@/components/pages/services/ServicesInitAnim
|
||||
import { Service } from "@/lib/api/serviceService";
|
||||
import { generateServiceMetadata } from "@/lib/seo/metadata";
|
||||
import { ServiceSchema, BreadcrumbSchema } from "@/components/shared/seo/StructuredData";
|
||||
import { API_CONFIG, getApiHeaders } from "@/lib/config/api";
|
||||
import { API_CONFIG } from "@/lib/config/api";
|
||||
|
||||
interface ServicePageProps {
|
||||
params: Promise<{
|
||||
@@ -24,13 +24,13 @@ interface ServicePageProps {
|
||||
// This pre-generates known pages, but new pages can still be generated on-demand
|
||||
export async function generateStaticParams() {
|
||||
try {
|
||||
// Use internal API URL for server-side requests
|
||||
const apiUrl = process.env.INTERNAL_API_URL || process.env.NEXT_PUBLIC_API_URL || 'http://127.0.0.1:1086';
|
||||
const response = await fetch(
|
||||
`${apiUrl}/api/services/`,
|
||||
`${API_CONFIG.BASE_URL}/api/services/`,
|
||||
{
|
||||
method: 'GET',
|
||||
headers: getApiHeaders(),
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
},
|
||||
next: { revalidate: 60 }, // Revalidate every minute for faster image updates
|
||||
}
|
||||
);
|
||||
@@ -57,13 +57,13 @@ export async function generateMetadata({ params }: ServicePageProps) {
|
||||
const { slug } = await params;
|
||||
|
||||
try {
|
||||
// Use internal API URL for server-side requests
|
||||
const apiUrl = process.env.INTERNAL_API_URL || process.env.NEXT_PUBLIC_API_URL || 'http://127.0.0.1:1086';
|
||||
const response = await fetch(
|
||||
`${apiUrl}/api/services/${slug}/`,
|
||||
`${API_CONFIG.BASE_URL}/api/services/${slug}/`,
|
||||
{
|
||||
method: 'GET',
|
||||
headers: getApiHeaders(),
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
},
|
||||
next: { revalidate: 60 }, // Revalidate every minute for faster image updates
|
||||
}
|
||||
);
|
||||
@@ -87,13 +87,13 @@ const ServicePage = async ({ params }: ServicePageProps) => {
|
||||
const { slug } = await params;
|
||||
|
||||
try {
|
||||
// Use internal API URL for server-side requests
|
||||
const apiUrl = process.env.INTERNAL_API_URL || process.env.NEXT_PUBLIC_API_URL || 'http://127.0.0.1:1086';
|
||||
const response = await fetch(
|
||||
`${apiUrl}/api/services/${slug}/`,
|
||||
`${API_CONFIG.BASE_URL}/api/services/${slug}/`,
|
||||
{
|
||||
method: 'GET',
|
||||
headers: getApiHeaders(),
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
},
|
||||
next: { revalidate: 60 }, // Revalidate every minute for faster image updates
|
||||
}
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user