注意: 这种方法并未得到核心团队的官方支持。这反映了一些团队当前如何实现内容和媒体的分组。请自行斟酌使用。
默认情况下,TinaCMS 期望:
content/
public/uploads/
这种设置在许多现代 Web 框架(如 Next.js、Astro 等)中有效,因为静态资源是从公共目录提供的,但它破坏了共址——您的内容和相关资源位于不同的位置。
这在管理、复制或迁移内容时增加了摩擦。
目前解决此问题的方法是将 Markdown 和静态资源都存储在 public/uploads
中。
假设您想要构建一个带有文章的博客,那么您的内容文件结构将如下所示:
public/└── uploads/└── posts/├── post-a/│ ├── index.md│ └── image.png
要使其工作,唯一需要做的就是在您的 Collection 文件中更新 path
以指向媒体文件夹。
//tina/collections/post.tsconst Post: Collection = {label: "Posts",name: "post",path: "public/uploads/posts",fields: [//...],//...};
public
中的每个文件都会被复制到您的构建输出中对于使用 TinaCMS 的现代前端框架项目,将 Markdown 和媒体放在一起简化了从创作到部署的所有过程。
✅ 优点:
如果您想了解其他可行的选项,请观看此视频:
有其他适合您的设置吗?请告诉我们!