我有这样的代码
import fs from 'fs';
import { promisify } from 'util';
import type { SvelteComponent } from 'svelte';
const readdir = promisify(fs.readdir);
export async function getAllPosts() {
const files = (await readdir(`src/data/posts`)).map((i) => i.replace(/.svx$/, ''));
return files;
}
和我的服务器路由import { getAllPosts } from '../../lib/blog';
export async function get() {
return { body: await getAllPosts() };
}
它在开发中运行良好,但在 netlify 的生产中不起作用,因为实际上没有 src/data/posts
目录了。我怎样才能让 sveltekit 在构建时生成这个数组?我曾尝试使用静态适配器,但它没有正确生成路由,因为尽管有指向站点上所有页面的链接,但它们不会立即生成。所以我想我必须使用 netlify 适配器。
最佳答案
您是正确的 /src/data/posts
文件夹不再存在,因此您的代码不起作用。
您要做的第一件事是将您的 Assets 复制到 /functions
文件夹,以便它们首先可用。
然后你必须确保你的脚本看起来在正确的位置,这里有一些神奇的地方,函数没有在放置的相同位置执行。您可以在 Netlify 支持论坛上阅读更多相关内容,主题如 this one .
如果您最终找到了可行的解决方案,也可以将其添加到此处作为答案。
关于svelte - 如何在 sveltekit netlify 中使用文件 api,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67953577/