Loving Tina? us on GitHub0.0k

文档

学习

v.Latest
Documentation
将媒体与内容分组
目录
注意:这种方法并未得到核心团队的官方支持。这反映了一些团队当前如何实现内容和媒体的分组。请自行决定是否使用。

默认情况下,TinaCMS期望:

  • Markdown文件位于专用的内容目录中,例如content/
  • 图片位于专用的静态目录中,例如public/uploads/

这种设置在许多现代Web框架(如Next.js、Astro等)中有效,因为静态资产是从公共目录中提供的,但这破坏了共址——您的内容和相关资产位于不同的位置。

这在管理、复制或迁移内容时增加了摩擦。

解决方案:将您的内容移动到媒体文件夹中

当前解决问题的方法是将Markdown和静态资产都存储在public/uploads中。

假设您想要构建一个带有文章的博客,那么您的内容文件结构将如下所示:

public/
└── uploads/
└── posts/
├── post-a/
│ ├── index.md
│ └── image.png
注意:public/uploads是默认的媒体文件夹,您可以根据项目需要更改它。
更多信息请参见:基于仓库的媒体

要使其工作,唯一需要做的就是在您的Collection文件中更新path以指向媒体文件夹。

//tina/collections/post.ts
const Post: Collection = {
label: "Posts",
name: "post",
path: "public/uploads/posts",
fields: [
//...
],
//...
};

注意事项

  • Markdown文件位于媒体文件夹内——这不常见
  • 内容是公开可读的(像其他静态资产一样),所以不要存储敏感信息
  • public中的每个文件都会被复制到您的构建输出中
  • 可能影响构建性能,潜在地增加构建时间

结论

对于使用TinaCMS的现代前端框架项目,将Markdown和媒体放在一起简化了从创作到部署的一切。

使用这里描述的方法,您将获得:

  • ✅ 无需额外的开发工作
  • ✅ 最小化的配置
  • ✅ 媒体管理器按预期工作
  • ✅ 清晰的结构和良好的开发者体验

如果您想了解其他可行的选项,请观看该视频:

Video: 在GitHub中存储Markdown的3种选项(适用于TinaCMS的图片和内容) (5 minutes)

有其他适合您的设置吗?请告诉我们!

上次编辑: June 27, 2025