diff --git a/.astro/types.d.ts b/.astro/types.d.ts
index f964fe0cf..03d7cc43f 100644
--- a/.astro/types.d.ts
+++ b/.astro/types.d.ts
@@ -1 +1,2 @@
///
+///
\ No newline at end of file
diff --git a/src/pages/[roadmapId].json.ts b/src/pages/[roadmapId].json.ts
index 16ad93c30..87a9fb935 100644
--- a/src/pages/[roadmapId].json.ts
+++ b/src/pages/[roadmapId].json.ts
@@ -11,9 +11,6 @@ export const prerender = false;
const __filename = fileURLToPath(import.meta.url);
const __dirname = path.dirname(__filename);
-// hack to make it work. TODO: Fix
-const projectRoot = path.resolve(__dirname, '../..').replace(/dist$/, '');
-
type RoadmapJson = {
_id: string;
title: string;
diff --git a/src/pages/[roadmapId]/courses.astro b/src/pages/[roadmapId]/courses.astro
index b72d68cae..6570657db 100644
--- a/src/pages/[roadmapId]/courses.astro
+++ b/src/pages/[roadmapId]/courses.astro
@@ -3,20 +3,9 @@ import RoadmapHeader from '../../components/RoadmapHeader.astro';
import BaseLayout from '../../layouts/BaseLayout.astro';
import { getOpenGraphImageUrl } from '../../lib/open-graph';
import { getProjectsByRoadmapId } from '../../lib/project';
-import {
- listOfficialRoadmaps,
- officialRoadmapDetails,
-} from '../../queries/official-roadmap';
+import { officialRoadmapDetails } from '../../queries/official-roadmap';
-export const prerender = true;
-
-export async function getStaticPaths() {
- const roadmaps = await listOfficialRoadmaps();
-
- return roadmaps.map((roadmap) => ({
- params: { roadmapId: roadmap.slug },
- }));
-}
+export const prerender = false;
interface Params extends Record {
roadmapId: string;
@@ -25,7 +14,9 @@ interface Params extends Record {
const { roadmapId } = Astro.params as Params;
const roadmapData = await officialRoadmapDetails(roadmapId);
if (!roadmapData) {
- return Astro.redirect('/404', 404);
+ Astro.response.status = 404;
+ Astro.response.statusText = 'Not found';
+ return Astro.rewrite('/404');
}
// update og for projects
diff --git a/src/pages/[roadmapId]/index.astro b/src/pages/[roadmapId]/index.astro
index 40356bbbd..bcf9f6982 100644
--- a/src/pages/[roadmapId]/index.astro
+++ b/src/pages/[roadmapId]/index.astro
@@ -16,21 +16,10 @@ import { RoadmapTitleQuestion } from '../../components/RoadmapTitleQuestion';
import ResourceProgressStats from '../../components/ResourceProgressStats.astro';
import { getProjectsByRoadmapId } from '../../lib/project';
import { CheckSubscriptionVerification } from '../../components/Billing/CheckSubscriptionVerification';
-import {
- listOfficialRoadmaps,
- officialRoadmapDetails,
-} from '../../queries/official-roadmap';
+import { officialRoadmapDetails } from '../../queries/official-roadmap';
import { DateTime } from 'luxon';
-export const prerender = true;
-
-export async function getStaticPaths() {
- const officialRoadmaps = await listOfficialRoadmaps();
-
- return officialRoadmaps.map((roadmap) => ({
- params: { roadmapId: roadmap.slug },
- }));
-}
+export const prerender = false;
interface Params extends Record {
roadmapId: string;
@@ -39,6 +28,8 @@ interface Params extends Record {
const { roadmapId } = Astro.params as Params;
const roadmapData = await officialRoadmapDetails(roadmapId);
if (!roadmapData) {
+ Astro.response.status = 404;
+ Astro.response.statusText = 'Not found';
return Astro.rewrite('/404');
}
diff --git a/src/pages/[roadmapId]/projects.astro b/src/pages/[roadmapId]/projects.astro
index 94c0c184c..ccff751d7 100644
--- a/src/pages/[roadmapId]/projects.astro
+++ b/src/pages/[roadmapId]/projects.astro
@@ -6,20 +6,9 @@ import BaseLayout from '../../layouts/BaseLayout.astro';
import { getProjectsByRoadmapId } from '../../lib/project';
import { getOpenGraphImageUrl } from '../../lib/open-graph';
import { projectApi } from '../../api/project';
-import {
- listOfficialRoadmaps,
- officialRoadmapDetails,
-} from '../../queries/official-roadmap';
+import { officialRoadmapDetails } from '../../queries/official-roadmap';
-export const prerender = true;
-
-export async function getStaticPaths() {
- const roadmapIds = await listOfficialRoadmaps();
-
- return roadmapIds.map((roadmap) => ({
- params: { roadmapId: roadmap.slug },
- }));
-}
+export const prerender = false;
interface Params extends Record {
roadmapId: string;
@@ -28,6 +17,8 @@ interface Params extends Record {
const { roadmapId } = Astro.params as Params;
const roadmapData = await officialRoadmapDetails(roadmapId);
if (!roadmapData) {
+ Astro.response.status = 404;
+ Astro.response.statusText = 'Not found';
return Astro.rewrite('/404');
}
diff --git a/src/pages/[roadmapId]/svg.astro b/src/pages/[roadmapId]/svg.astro
index d353d723e..19f86f45e 100644
--- a/src/pages/[roadmapId]/svg.astro
+++ b/src/pages/[roadmapId]/svg.astro
@@ -2,20 +2,9 @@
import { EditorRoadmap } from '../../components/EditorRoadmap/EditorRoadmap';
import SkeletonLayout from '../../layouts/SkeletonLayout.astro';
import { getOpenGraphImageUrl } from '../../lib/open-graph';
-import {
- listOfficialRoadmaps,
- officialRoadmapDetails,
-} from '../../queries/official-roadmap';
+import { officialRoadmapDetails } from '../../queries/official-roadmap';
-export const prerender = true;
-
-export async function getStaticPaths() {
- const roadmapIds = await listOfficialRoadmaps();
-
- return roadmapIds.map((roadmap) => ({
- params: { roadmapId: roadmap.slug },
- }));
-}
+export const prerender = false;
interface Params extends Record {
roadmapId: string;
@@ -24,6 +13,8 @@ interface Params extends Record {
const { roadmapId } = Astro.params as Params;
const roadmapData = await officialRoadmapDetails(roadmapId);
if (!roadmapData) {
+ Astro.response.status = 404;
+ Astro.response.statusText = 'Not found';
return Astro.rewrite('/404');
}
diff --git a/src/pages/projects/[projectId]/index.astro b/src/pages/projects/[projectId]/index.astro
index 4fe963e04..038044ee2 100644
--- a/src/pages/projects/[projectId]/index.astro
+++ b/src/pages/projects/[projectId]/index.astro
@@ -11,17 +11,7 @@ import { ProjectStepper } from '../../../components/Projects/StatusStepper/Proje
import { ProjectTrackingActions } from '../../../components/Projects/StatusStepper/ProjectTrackingActions';
import { ProjectTabs } from '../../../components/Projects/ProjectTabs';
-export const prerender = true;
-
-export async function getStaticPaths() {
- const projects = await getAllProjects();
-
- return projects
- .map((project) => project.id)
- .map((projectId) => ({
- params: { projectId },
- }));
-}
+export const prerender = false;
interface Params extends Record {
projectId: string;
@@ -30,6 +20,12 @@ interface Params extends Record {
const { projectId } = Astro.params as Params;
const project = await getProjectById(projectId);
+if (!project) {
+ Astro.response.status = 404;
+ Astro.response.statusText = 'Not found';
+ return Astro.rewrite('/404');
+}
+
const projectData = project.frontmatter as ProjectFrontmatter;
let jsonLdSchema: any[] = [];
diff --git a/src/pages/projects/[projectId]/solutions.astro b/src/pages/projects/[projectId]/solutions.astro
index 344f4a0a0..d533956db 100644
--- a/src/pages/projects/[projectId]/solutions.astro
+++ b/src/pages/projects/[projectId]/solutions.astro
@@ -9,18 +9,7 @@ import { ProjectTabs } from '../../../components/Projects/ProjectTabs';
import { ListProjectSolutions } from '../../../components/Projects/ListProjectSolutions';
import { ProjectSolutionModal } from '../../../components/Projects/ProjectSolutionModal';
-export const prerender = true;
-
-export async function getStaticPaths() {
- const projects = await getAllProjects();
-
- return projects
- .filter((project) => !(project?.frontmatter?.hasNoSubmission || false))
- .map((project) => project.id)
- .map((projectId) => ({
- params: { projectId },
- }));
-}
+export const prerender = false;
interface Params extends Record {
projectId: string;
@@ -29,6 +18,12 @@ interface Params extends Record {
const { projectId } = Astro.params as Params;
const project = await getProjectById(projectId);
+if (!project) {
+ Astro.response.status = 404;
+ Astro.response.statusText = 'Not found';
+ return Astro.rewrite('/404');
+}
+
const projectData = project.frontmatter as ProjectFrontmatter;
let jsonLdSchema: any[] = [];
diff --git a/src/pages/projects/index.astro b/src/pages/projects/index.astro
index 68f08a2a4..8e52067b7 100644
--- a/src/pages/projects/index.astro
+++ b/src/pages/projects/index.astro
@@ -6,6 +6,8 @@ import { ProjectsPage } from '../../components/Projects/ProjectsPage';
import { projectApi } from '../../api/project';
import { listOfficialRoadmaps } from '../../queries/official-roadmap';
+export const prerender = false;
+
const roadmapProjects = await getRoadmapsProjects();
const allRoadmapIds = Object.keys(roadmapProjects);