Cloudflare 部署站点时项目配置文件的位置

Cloudflare Pages 是一个强大的静态托管平台,不仅能轻松部署静态站点,还支持通过 /functions 目录集成 Workers,创建无服务器全栈应用。

同时,它支持通过根目录的特殊配置文件,如 _redirects_headers,直接定义站点的重定向规则和 HTTP 响应标头。

但是如果使用了框架部署呢?
例如在部署 Cloudflare Pages 项目时选择了 框架预设,或者手动填写 构建命令构建输出目录 了呢?

作者试过在这种情况下部署一个 Hexo 站点,将 _redirects 或者 _headers 文件放在项目的根目录是无法设置的。

构建命令:

1
npm install && npx hexo generate

构建输出:

1
/public
1
2
3
4
5
6
7
8
9
/hexo-project
├── /node_modules
├── /scaffolds
├── /source
├── /themes
├── _config.yml
├── .gitignore
├── package.json
└── _headers

如文件结构所示,这种情况将 _headers 文件放到项目根目录是不会生效的,
如果在部署时设置了目录,如构建输出目录,则您必须将单独的设置文件放到构建输出目录中,
例如 /public,这种情况下特殊配置文件才能够生效,因为 Cloudflare Pages 自动识别的所检查的根目录并不是绝对的项目根目录。

例如:

1
2
3
4
5
6
7
8
9
10
11
12
13
/hexo-project
├── /node_modules
├── /public <-- 生成的静态文件目录
│ ├── /assets
│ ├── /posts
│ ├── index.html
│ └── _headers <-- 在这里放置 _headers 文件
├── /scaffolds
├── /source
├── /themes
├── _config.yml
├── .gitignore
└── package.json

研究了好半天才明白必须要放在这里,即部署时设置的根目录或者输出目录。


Cloudflare 部署站点时项目配置文件的位置
https://molikaihe.pages.dev/posts/45e5b413
作者
墨离
发布于
2025年1月2日
许可协议