Next.js |有什么方法可以渲染 .xml 文件吗?
Next.js | Is there any way to render an .xml file?
我试图在指向 www.example.com/sitemap.xml 时呈现 XML 文件。由于项目是使用Next.js开发的,所以路由使用的是pages目录下存放的js文件:
- 示例。com/help -> help.js
- 示例。com/info -> info.js
那么,有没有办法通过避免访问后端来实现这一点?
在 public 目录下添加一个名为 sitemap.xml 的静态文件
public/sitemap.xml
构建后您可以访问 www.yourdomain.com/sitemap.xml
阅读有关静态文件的更多信息:https://nextjs.org/docs/basic-features/static-file-serving
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
我试图在指向 www.example.com/sitemap.xml 时呈现 XML 文件。由于项目是使用Next.js开发的,所以路由使用的是pages目录下存放的js文件:
- 示例。com/help -> help.js
- 示例。com/info -> info.js
那么,有没有办法通过避免访问后端来实现这一点?
在 public 目录下添加一个名为 sitemap.xml 的静态文件
public/sitemap.xml
构建后您可以访问 www.yourdomain.com/sitemap.xml
阅读有关静态文件的更多信息:https://nextjs.org/docs/basic-features/static-file-serving
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