v.Latest
Documentation
将媒体与内容分组
在此页面上
注意:这种方法并未得到核心团队的官方支持。这反映了一些团队当前如何实现内容和媒体的分组。请自行决定是否使用。
默认情况下,TinaCMS期望:
- Markdown文件位于专用的内容目录中,例如
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: [//...],//...};
注意事项
- Markdown文件位于媒体文件夹内——这不常见
- 内容是公开可读的(像其他静态资产一样),所以不要存储敏感信息
public中的每个文件都会被复制到您的构建输出中- 可能影响构建性能,潜在地增加构建时间
结论
对于使用TinaCMS的现代前端框架项目,将Markdown和媒体放在一起简化了从创作到部署的一切。
使用这里描述的方法,您将获得:
- ✅ 无需额外的开发工作
- ✅ 最小化的配置
- ✅ 媒体管理器按预期工作
- ✅ 清晰的结构和良好的开发者体验
如果您想了解其他可行的选项,请观看该视频:
Video: 在GitHub中存储Markdown的3种选项(适用于TinaCMS的图片和内容) (5 minutes)
有其他适合您的设置吗?请告诉我们!