在使用 Cloudflare Workers 时Workers Routes是一个非常关键但容易被误解的功能。尤其是❓→ None到底是什么意思❓ 为什么要排除_next/static这样的路径本文通过一个典型配置系统讲清其原理与最佳实践。 一、示例配置back.example.cloud/_next/static/* → None back.example.cloud/* → hub-worker 二、Workers Routes 的作用Workers Routes 本质是基于 URL 的匹配规则用于决定请求是否进入 Worker 执行可以将其理解为一层“边缘请求分流器”。 三、None 的含义在 Routes 中→ None表示该路径不会绑定任何 Worker即 请求不会进入 Worker 直接走 Cloudflare 默认逻辑CDN 缓存或回源 行为对比配置实际行为→ hub-worker请求进入 Worker 执行逻辑→ None请求跳过 Worker直接由 CDN/源站处理⚙️ 四、匹配规则机制Workers Routes 的匹配规则为✅按顺序匹配从上到下 示例执行过程1. back.example.cloud/_next/static/* → None 2. back.example.cloud/* → hub-worker✅ 场景 1静态资源请求/_next/static/chunk.js匹配第一条规则跳过 Worker直接由 CDN 返回高性能缓存✅ 场景 2API 或页面请求/api/user匹配第二条规则进入hub-worker执行业务逻辑 五、为何排除_next/static 背景说明在 Next.js 中/_next/static/目录包含构建后的 JS / CSS图片资源带 hash 的静态文件可长期缓存 不排除的影响若所有请求都进入 Worker增加额外延迟Worker 执行提高调用成本降低 CDN 缓存命中效率✅ 推荐策略请求类型处理方式静态资源CDNNoneAPI 请求Worker动态页面Worker / SSR 六、等价代码模型该路由策略可以抽象为如下逻辑export default { async fetch(request) { const url new URL(request.url); if (url.pathname.startsWith(/_next/static/)) { return fetch(request); // 直接走 CDN / 源站 } return handleWithWorkerLogic(request); // 进入 Worker } };⚠️ 七、常见误区❌ 误区 1None 表示禁用路由错误理解。✔ 正确认知None 表示“该路径不使用 Worker”❌ 误区 2规则顺序无关紧要错误。若顺序写成back.example.cloud/* → hub-worker back.example.cloud/_next/static/* → None则 所有请求都会被第一条规则匹配 第二条规则永远不会生效️ 八、最佳实践 推荐分层架构静态资源 → CDNNone 动态请求 → Worker 数据处理 → Worker / API 进阶优化方向Cache Rules缓存策略控制Workers KV / R2边缘存储HTML Streaming流式响应Cache TTL 精细化配置✅ 九、总结None 的本质显式跳过 Worker让请求直接走 Cloudflare CDN 或源站示例配置back.example.cloud/_next/static/* → None back.example.cloud/* → hub-worker体现了典型的边缘架构设计原则✔ 静态资源走 CDN✔ 动态请求走 Worker✔ 路由按顺序匹配
[特殊字符] Cloudflare Workers Routes 配置详解(含实战示例
在使用 Cloudflare Workers 时Workers Routes是一个非常关键但容易被误解的功能。尤其是❓→ None到底是什么意思❓ 为什么要排除_next/static这样的路径本文通过一个典型配置系统讲清其原理与最佳实践。 一、示例配置back.example.cloud/_next/static/* → None back.example.cloud/* → hub-worker 二、Workers Routes 的作用Workers Routes 本质是基于 URL 的匹配规则用于决定请求是否进入 Worker 执行可以将其理解为一层“边缘请求分流器”。 三、None 的含义在 Routes 中→ None表示该路径不会绑定任何 Worker即 请求不会进入 Worker 直接走 Cloudflare 默认逻辑CDN 缓存或回源 行为对比配置实际行为→ hub-worker请求进入 Worker 执行逻辑→ None请求跳过 Worker直接由 CDN/源站处理⚙️ 四、匹配规则机制Workers Routes 的匹配规则为✅按顺序匹配从上到下 示例执行过程1. back.example.cloud/_next/static/* → None 2. back.example.cloud/* → hub-worker✅ 场景 1静态资源请求/_next/static/chunk.js匹配第一条规则跳过 Worker直接由 CDN 返回高性能缓存✅ 场景 2API 或页面请求/api/user匹配第二条规则进入hub-worker执行业务逻辑 五、为何排除_next/static 背景说明在 Next.js 中/_next/static/目录包含构建后的 JS / CSS图片资源带 hash 的静态文件可长期缓存 不排除的影响若所有请求都进入 Worker增加额外延迟Worker 执行提高调用成本降低 CDN 缓存命中效率✅ 推荐策略请求类型处理方式静态资源CDNNoneAPI 请求Worker动态页面Worker / SSR 六、等价代码模型该路由策略可以抽象为如下逻辑export default { async fetch(request) { const url new URL(request.url); if (url.pathname.startsWith(/_next/static/)) { return fetch(request); // 直接走 CDN / 源站 } return handleWithWorkerLogic(request); // 进入 Worker } };⚠️ 七、常见误区❌ 误区 1None 表示禁用路由错误理解。✔ 正确认知None 表示“该路径不使用 Worker”❌ 误区 2规则顺序无关紧要错误。若顺序写成back.example.cloud/* → hub-worker back.example.cloud/_next/static/* → None则 所有请求都会被第一条规则匹配 第二条规则永远不会生效️ 八、最佳实践 推荐分层架构静态资源 → CDNNone 动态请求 → Worker 数据处理 → Worker / API 进阶优化方向Cache Rules缓存策略控制Workers KV / R2边缘存储HTML Streaming流式响应Cache TTL 精细化配置✅ 九、总结None 的本质显式跳过 Worker让请求直接走 Cloudflare CDN 或源站示例配置back.example.cloud/_next/static/* → None back.example.cloud/* → hub-worker体现了典型的边缘架构设计原则✔ 静态资源走 CDN✔ 动态请求走 Worker✔ 路由按顺序匹配