📦 plugin-client-redirects
用于生成客户端重定向的 Docusaurus 插件。
这个插件会在你的静态网站中写入额外的 HTML 页面,通过 JavaScript 将用户重定向到已有的 Docusaurus 页面。
仅生产环境
这个插件在开发过程中始终不工作,只在生产环境中启用,因为它会在构建输出上工作。
注意
如果可行,你最好用服务端重定向。
在用这个插件前,你应该确定你的托管商是否确实不提供此功能。
安装流程
- npm
- Yarn
npm install --save @docusaurus/plugin-client-redirects
yarn add @docusaurus/plugin-client-redirects
配置
接受的字段:
选项 | 类型 | 默认值 | 描述 |
---|---|---|---|
fromExtensions | string[] | [] | 重定向后从路径中删除的扩展名。 |
toExtensions | string[] | [] | 重定向后添加到路径后的扩展名。 |
redirects | RedirectRule[] | [] | The list of redirect rules. |
createRedirects | CreateRedirectsFn | undefined | A callback to create a redirect rule. |
类型
RedirectRule
type RedirectRule = {
to: string;
from: string | string[];
};
CreateRedirectsFn
type CreateRedirectsFn = (path: string) => string[] | string | null | undefined;
示例配置
这是一个示例配置:
docusaurus.config.js
module.exports = {
plugins: [
[
'@docusaurus/plugin-client-redirects',
{
fromExtensions: ['html', 'htm'], // /myPage.html -> /myPage
toExtensions: ['exe', 'zip'], // /myAsset -> /myAsset.zip (如果后者存在的话)
redirects: [
// /docs/oldDoc -> /docs/newDoc
{
to: '/docs/newDoc',
from: '/docs/oldDoc',
},
// 将多个旧路径重定向到新路径
{
to: '/docs/newDoc2',
from: ['/docs/oldDocFrom2019', '/docs/legacyDocFrom2016'],
},
],
createRedirects(existingPath) {
if (existingPath.includes('/community')) {
// 将 /docs/team/X 重定向到 /community/X,/docs/support/X 重定向到 /community/X
return [
existingPath.replace('/community', '/docs/team'),
existingPath.replace('/community', '/docs/support'),
];
}
return undefined; // 返回 falsy 值,不创建重定向
},
},
],
],
};