首页 > 解决方案 > Next.js | 有什么方法可以呈现 .xml 文件?

问题描述

我试图在指向www.example.com/sitemap.xml时呈现 XML 文件。由于该项目是使用 Next.js 开发的,因此路由与存储在 pages 目录中的 js 文件一起使用:

那么,有没有办法通过避免访问后端来实现这一点?

标签: reactjsnext.jsvercel

解决方案


JS版

/pages/sitemap.xml.jsx

import React from 'react'

class Sitemap extends React.Component {
  static async getInitialProps({ res }) {
    res.setHeader('Content-Type', 'text/xml')
    res.write(`<?xml version="1.0" encoding="UTF-8"?>
    <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
      ...
    </urlset>`)
    res.end()
  }
}

export default Sitemap

TS版

/pages/sitemap.xml.tsx

import { GetServerSideProps } from 'next'
import React from 'react'

const Sitemap: React.FC = () => null

export const getServerSideProps: GetServerSideProps = async ({ res }) => {
  if (res) {
    res.setHeader('Content-Type', 'text/xml')
    res.write(`<?xml version="1.0" encoding="UTF-8"?>
    <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">

    </urlset>`)
    res.end()
  }
  return {
    props: {},
  }
}

export default Sitemap

:D


推荐阅读