https://www.seancdavis.com/posts/render-xml-page-with-nextjs/
To render a page in Next.js as XML (or really any other non-HTML format), here’s a pattern that I’ve found works well:
const Sitemap = () => null;
export const getServerSideProps = async ({ res }) => {
// Fetch data and build page content ...
const content = "...";
res.setHeader("Content-Type", "text/xml");
res.write(content);
res.end();
return {
props: {},
};
};
export default Sitemap;This pattern may look a little odd, so let’s break it down:
- Nothing is rendered from the component. The page component is just an empty component that renders
null. getServerSidePropshijacks the Node.js response by 1) setting the appropriate content type header, and 2) returning with the content (as a string) to be rendered on the page.
Note that we still want to return the props object or Next gets mad.
Không có nhận xét nào:
Đăng nhận xét