前端项目怎么正确生成和部署sitemap.xml?
我用Vite搭了个静态博客,想加个sitemap提升SEO,但不知道该在哪儿生成、怎么让搜索引擎抓到。试过手写sitemap.xml放public目录,但每次新增文章都得手动改,太麻烦了。
看到有些插件能自动生成,比如vite-plugin-sitemap,但配置完build后没看到输出文件。我的路由是动态从md文件生成的,是不是得在构建时读取所有文章路径?有没有推荐的方案或者示例配置?
import { defineConfig } from 'vite';
import react from '@vitejs/plugin-react';
import sitemap from 'vite-plugin-sitemap';
export default defineConfig({
plugins: [
react(),
sitemap({
hostname: 'https://example.com',
// 这里该怎么动态注入所有文章路径?
})
]
});
首先,确保你的
vite-plugin-sitemap插件已经正确安装并且配置在你的 vite.config.js 文件中。从你的配置来看,你已经有了基本的框架。接下来,为了动态注入所有文章路径,你需要在插件配置中提供一个动态获取路由的方法。假设你的文章路径存储在一个地方(比如一个数组或从某个文件夹中读取),你可以这样做:
1. 创建一个脚本或函数,用于遍历你的文章文件夹并生成路径数组。
2. 在
vite-plugin-sitemap的配置中,使用这个函数的结果作为routes参数的值。这里有一个简单的示例,假设你的文章路径可以从一个文件夹中读取,并且每个文件对应一个 URL 路径:
这段代码会从
src/posts目录下读取所有的 markdown 文件,并为每个文件生成一个 URL 路径,然后将其传递给sitemap插件。注意安全:当你从文件系统读取数据时,确保路径是安全的,避免目录遍历攻击的风险。在这个例子中,我们假设
src/posts是一个受控目录,只包含合法的文章文件。这样配置后,重新构建你的项目,应该就能在
dist目录下看到生成的 sitemap.xml 文件了。别忘了将这个文件放在你的服务器根目录下,以便搜索引擎能够抓取到它。