# @apostrophecms/sitemap 中文文档

规范地址：https://npmcn.com/package/%40apostrophecms/sitemap/

版本：1\.5\.1
npm 元数据更新时间：2026-10-20T16:57:43.905Z
中文译文更新时间：2026-11-06T11:05:38.371Z
软件包许可：MIT

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40apostrophecms/sitemap
原文对照：https://npmcn.com/package/%40apostrophecms/sitemap/?lang=original
项目主页：https://github.com/apostrophecms/apostrophe/tree/main/packages/sitemap#readme
源码仓库：https://github.com/apostrophecms/apostrophe

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：81 kB，8 个文件
- 模块格式：CommonJS
- TypeScript 类型：未声明
- 运行依赖：1 个
- 首次发布：2021-06-30T20:38:09.081Z
- 最新版本发布：2026-09-30T19:29:28.257Z
- 近 30 天下载量：6027（2026-10-07 至 2026-11-05，npm 官方下载统计）
- 已发布版本数：11（近 12 个月 4 个）

## 中文简介

ApostropeCMS 的 siteap 生成器 .

## 安装

```sh
npm install @apostrophecms/sitemap
```

也可以使用：`pnpm add @apostrophecms/sitemap`、`yarn add @apostrophecms/sitemap`、`bun add @apostrophecms/sitemap`

## README

![ApostropheCMS logo](https://raw.githubusercontent.com/apostrophecms/apostrophe/main/logo.svg)

# ApostropeCMS 的 siteap 生成器

 [![](https://img.shields.io/badge/MADE%20FOR%20ApostropheCMS-000000.svg?style=for-the-badge&logo=Apostrophe&labelColor=6516dd)](https://docs.apostrophecms.org/)[![](https://img.shields.io/discord/517772094482677790?color=5865f2&label=Join%20the%20Discord&logo=discord&logoColor=fff&labelColor=000&style=for-the-badge&logoWidth=20) ](http://chat.apostrophecms.org/)[![](https://img.shields.io/static/v1?style=for-the-badge&labelColor=000000&label=License&message=MIT&color=3DA639)](https://github.com/apostrophecms/blog/blob/main/LICENSE.md)

Apostrope Siteap 模块生成 XML 网站地图, 供网站使用 [ApostropheCMS 磁带控制系统](https://apostrophecms.com/). 站点地图包括您网站上所有公众可见的页面,包括事件和博客帖等"件"内容.

一个经常更新和准确的XML站点地图可以让搜索引擎更快地索引您的内容并查看新页面. Sitemap 模块将维护缓存的站点地图以快速加载,但在一个小时后(默认情况下)自动刷新. 这也阻止了网站地图过时,这将是 _罺_ 为SEO.

## 路线图

| 特性 | 状态 |
| --- | --- |
| 用于单一本地网站的项目生成 | 已执行 |
| 排除某些 Doc 类型的模块配置 | 已执行 |
| 手动生成站点映射的任务 | 已执行 |
| 文本风格的站点地图生成(用于内容战略工作) | 计划数 |
| 支持多个地(地) | 已执行 |
| 输出定制功能 | 计划数 |

## 安装

```bash
npm install @apostrophecms/sitemap
```

## 使用

### 初始化

配置 `@apostrophecms/sitemap` 内 `app.js` 作为项目单元.

```javascript
// app.js
require('apostrophe')({
  shortName: 'my-project',
  baseUrl: 'https://example.com',
  modules: {
    '@apostrophecms/sitemap': {}
  }
});
```

**启动网站** (与 `node app` 或你所偏爱的指令),并且 `http://localhost:3000/sitemap.xml` (地方发展)。 您现在应该看到一个站点地图中显示的任何页面, 以及任何有相关块页的作品 .

### 设置 `baseUrl`

必须配置一个 `baseUrl` 用于项目正确显示 URL。 如上所示,这可以在应用程序配置对象中实现. 为支持生产和发展环境的不同领域,还可以将其配置在以下结构中: `data/local.js` 文件,通过版本控制应当被忽略. `data/local.js` 将优先于 `app.js`,因此两者也可以用来支持多种环境.

```javascript
// data/local.js
module.exports = {
  baseUrl: 'http://localhost:3000'
};
```

### 选项

所有站点映射模块选项都配置在 `options` 对象.

```javascript
// modules/@apostrophecms/sitemap/index.js
module.exports = {
  // 👇 Module options
  options: {
    cacheLifetime: 1800,
    excludeTypes: [ 'exclusive-page', 'category' ]
  }
};
```

这些内容可在 `app.js` 模块的配置对象,但使用模块配置的专用文件是更好的做法.

#### `cacheLifetime`

默认的站点图被缓存一个小时. 您可以通过指定 `cacheLifetime` 选项,以秒计。 它必须是一个大于零的数字.

**提示 :** 为了更容易进入缓存寿命,它可以帮助将其写作数学表达式,将期望的分数乘以60:

```javascript
cacheLifetime: 30 * 60 // or 1800 seconds
```

记住:Google和其他搜索引擎比每周多,如果是这样的话. 每小时刷一次 通常都足够了.

#### `excludeTypes`

如果存在特定的页面类型或块内容类型,则应 _没有_ 在站点映射中,将它们列在阵列中作为 `excludeType` 选项.

```javascript
excludeTypes: [ 'exclusive-page', 'category' ]
```

#### `piecesPerBatch` _(折旧)_

此选项不再被使用, 将被忽略 。 它之前用于控制在直接从数据库查询中构建站点映像时每次处理多少件. 站点地图模块现在使用集中式 `getAllUrlMetadata` API代替.

### `perLocale`

如果您的项目使用多个本地地址, 您想要 **每个地方都有自己的站点地图**,启用 `perLocale` 选项 :

```js
// modules/@apostrophecms/sitemap/index.js
module.exports = {
  options: {
    perLocale: true
  }
};
```

这将:

-   为每个地方生成单独的站点映射文件(例如, `/sitemaps/en.xml`, (中文(简体) ), `/sitemaps/es.xml`页:1
-   服务网站映射索引文件于 `/sitemaps/index.xml`
-   禁用默认 `/sitemap.xml` 路径(返回 a 404)

> 💡 **提示** 如果你使用多个地方,启用 `perLocale` 生成一个单独的站点图.

> ```
> Sitemap: https://example.com/sitemaps/index.xml
> ```

### 任务

#### `print`

这个 `print` 命令会根据需要生成最新的站点地图 **将网站映射打印到控制台**。也可以根据需要将输出管道化,以帮助生成静态文件版本。 在命令行上,运行 :

```bash
node app @apostrophecms/sitemap:print
```

#### `update-cache`

使用 `update-cache` 任务以强制随时更新缓存。 如果网站非常大(数以百计的URL),在生产服务器上运行此任务选项时,比标准缓存刷新更频繁地使用克龙任务,有助于在搜索引擎开始爬行网站时确保缓存可用.

```bash
node app @apostrophecms/sitemap:update-cache
```

#### `clear`

您可以在任何时间手动清除缓存的站点图 `clear` 任务。 这将迫使在下次请求时生成一个新的站点图 `/sitemap.xml`。在命令行中,运行:

```bash
node app @apostrophecms/sitemap:clear
```

### 向搜索引擎介绍网站地图

创建一个 `public/robots.txt` 如果您还没有文件,请添加站点映射行。 这是没有其他网站的有效例子 `robots.txt` 规则 :

```
Sitemap: https://example.com/sitemap.xml
```

### 解决问题

-   如果你已经有静态 `public/sitemap.xml` 文档, **文件将在 `/sitemap.xml` URL路径代替.** 删除它让模块接管.
-   默认情况下会缓存一个小时,所以不会立即看到内容的改变. 见上文关于 `cacheLifetime` 选项, `clear` 任务,以及 `update-cache` 任务,用于更频繁地更新网站图.

## 常见问题

### @apostrophecms/sitemap 是什么？

ApostropeCMS 的 siteap 生成器 \.

### 如何安装 @apostrophecms/sitemap？

在项目目录运行 npm install @apostrophecms/sitemap，或使用 pnpm add / yarn add / bun add。

### @apostrophecms/sitemap 支持 TypeScript 吗？

该包的 package\.json 没有声明类型入口。需要类型提示时，可以在 npm 上查找社区维护的 @types/apostrophecms\_\_sitemap 是否存在。

### @apostrophecms/sitemap 支持 ESM 还是 CommonJS？

以 CommonJS 形式发布，可以直接 require\(\)；在 ES Module 项目中也可以用 import 引入（Node\.js 会把 module\.exports 作为默认导出）。

### @apostrophecms/sitemap 可以商用吗？

@apostrophecms/sitemap 使用 MIT 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。以上为概括，不构成法律意见，请以许可原文为准。

### @apostrophecms/sitemap 的下载量有多少？

根据 npm 官方下载统计，@apostrophecms/sitemap 在 2026/10/07 – 2026/11/05 这 30 天内被下载 6,027 次，日均约 201 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @apostrophecms/sitemap 还在维护吗？

最新版本 1\.5\.1 发布于 2026/10/01（1 个月前）；至今共发布 11 个版本，其中过去 12 个月发布了 4 个；首次发布于 2021/07/01。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

