我正在提出一些超出 512kb svelte 限制的请求,我已经在 svelte 文档上检查了此页面 https://kit.svelte.dev/docs/adapter-node#environment-variables-body-size-limit,它说我必须将某些内容设置为 0 并实现自定义检查,并且我正在使用适配器- vercel(因为我尝试过 env 方法不起作用),不知道该怎么做,有人可以帮助我吗?
要在本地删除限制,请将其添加到项目根目录下的
.env
文件中:
BODY_SIZE_LIMIT=0
并在 Vercel 中添加具有相同名称和值的 环境变量。
请注意,您还可以将其设置为以千字节为单位的自定义值:
BODY_SIZE_LIMIT=1024 # 1mb
然后您需要使用
src/hooks.server.js
方法创建一个
handle
文件,该方法查看请求正文并在太大时拒绝它。这是 Rich Harris 的示例:
export function handle({ event, resolve }) {
const length = +(event.request.headers.get('content-length') ?? '0');
if (length > MAX_SIZE) {
throw error(413);
}
return resolve(event);
}
其中
MAX_SIZE
与您设置的环境变量匹配。
使用 Node.js 适配器时,添加以下环境变量:
BODY_SIZE_LIMIT=Infinity
在调用“节点”解释器之前。