应用文件夹外的内容
介绍
在某些项目中,您的内容文件位于安装TinaCMS的应用程序文件夹之外。例如,您的Next.js应用程序可能位于packages/website/中,而您的markdown内容位于顶级的content/文件夹中。
TinaCMS通过localContentPath配置选项支持这种布局。本指南将介绍如何设置它。
如果您的内容位于一个完全独立的Git仓库中,请参阅独立内容仓库指南。
示例结构
第1步:配置localContentPath
在您的tina/config.ts中,将localContentPath设置为指向您的内容目录。该路径是相对于tina/配置文件夹解析的,而不是项目根目录。
使用环境变量来设置
localContentPath,因为相对路径可能因开发者克隆仓库的位置不同而异。
第2步:在内容目录中创建tina/文件夹
TinaCMS将生成的文件(tina-lock.json、__generated__/等)写入内容根目录中的tina/文件夹。此文件夹必须存在,否则CLI将失败并显示:
创建它:
您可以添加一个.gitkeep文件以确保它被Git跟踪:
第3步:设置相对于内容根目录的集合路径
当设置了localContentPath时,集合的path值是相对于内容根目录解析的,而不是应用程序文件夹。
例如,如果您的内容位于content/posts/:
第4步:运行开发服务器
不需要特殊的CLI标志。只需像往常一样从您的应用程序目录运行:
您应该会看到:
故障排除
"无法找到Tina文件夹 ... 指定--rootPath"
此错误意味着内容目录缺少tina/文件夹。使用mkdir content/tina创建一个。错误消息中的--rootPath建议对于此用例是误导的——它控制TinaCMS查找应用程序配置的位置,而不是内容目录。
找不到文档或集合为空
检查您的集合path值是否相对于内容根目录,而不是应用程序文件夹。如果localContentPath指向content/,那么path: "posts"解析为content/posts/,而不是content/content/posts/。
路径解析参考
localContentPath是相对于tina/配置文件夹解析的。仔细计算目录级别: