1. 理发
2. 订婚衣服
3. 制作导引牌子
4. 锦旗
5. 婚纱照
2. 订婚衣服
3. 制作导引牌子
4. 锦旗
5. 婚纱照
rewrites 在这两种情况下的行为是不同的:"rewrites": [
{
"source": "/w",
"destination": "/api/index"
}
]/w 这个路径就是 /api/index 的一个别名”。/api/index 处理。此时,对于 api/index 函数来说,它看到的 request.url 就是它自己的地址:`/api/index`。原始的 /w 在这个阶段已经被“翻译”掉了。"rewrites": [
{
"source": "/(.*)",
"destination": "/api/index.js"
}
] 中的 (.*) 是一个正则表达式的“捕获组”,它会捕获所有传入的路径。你告诉 Vercel:“无论用户访问什么路径,都把它捕获下来,然后交给 /api/index.js` 这个函数去处理”。/api/index.js 能正确处理请求(例如,根据 URL 显示不同的页面内容),Vercel 必须把**原始捕获到的路径**告诉它。因此,在这种情况下,函数内部拿到的 request.url **就是用户访问的原始 URL**。source 的写法 | 行为模式 | 函数收到的 request.url |"/w" (静态路径) | 别名 (Alias) | "/api/index" (目标地址) |"/(.*)" (动态正则捕获) | 网关 (Gateway) | "/w" (原始请求地址) |channel_content.json 文件在电脑上。gzip 命令进行压缩: gzip channel_content.json
channel_content.json.gz 文件。curl 命令上传这个 .gz 文件。注意 Content-Type 现在是 `application/gzip`。 curl -X POST "https://<你的Worker地址>/upload?token=<你的AUTH_TOKEN>" \
-H "Content-Type: application/gzip" \
--data-binary "@channel_content.json.gz"
--data-binary 确保文件以二进制形式上传,不会被修改。Successfully uploaded channel_content.json.gz. 的消息。