注意:这种方法并未得到核心团队的官方支持。这反映了一些团队当前如何实现内容和媒体的分组。请自行决定是否使用。
默认情况下,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和媒体放在一起简化了从创作到部署的一切。
使用这里描述的方法,您将获得:
如果您想了解其他可行的选项,请观看该视频:
有其他适合您的设置吗?请告诉我们!