TinaCMS 提供了内置的基于仓库(git)的媒体存储选项。或者,您可以将您的CMS连接到外部媒体存储提供商。
基于仓库的媒体将您的资产与内容放在一起,这意味着您可以跟踪代码和媒体的更改并回滚版本。
这还有其他好处,如减少依赖性、使用外部API、本地开发和预览环境之间的同步。
看不到您的媒体?要在媒体管理器中查看您的媒体,您需要在媒体管理器中按下“同步媒体”按钮。这将从 GitHub 拉取所有媒体并将其添加到 TinaCMS。
要在您的项目中配置基于仓库的媒体,请在 tina/config.{ts,js}
中的架构定义中添加以下内容
//tina/config.{ts,js}export default defineConfig({// ...media: {tina: {publicFolder: 'public',mediaRoot: 'uploads',static: false, //默认是 false},},});
将 publicFolder
设置为您网站的“public”文件夹的路径。此路径是相对于您项目的根目录的。
对于任何 NextJS 网站(例如我们的 tina-cloud-starter),此值应为"public"
。
媒体文件夹的路径,相对于 publicFolder
值。
如果您希望将媒体上传到 publicFolder
的根目录,请将其设置为 ""
。
此目录中的任何内容都将与 TinaCloud 的媒体服务器同步,图像将公开可访问。
static
属性决定了是否可以通过编辑器直接上传、编辑或删除媒体文件。
static: true
编辑者不能上传/删除媒体(静态资产)static: false
(默认):编辑者可以上传/删除媒体(动态资产)。默认支持以下文件类型
格式 | MIME 类型 | 示例 |
---|---|---|
Adobe InDesign |
| .indd |
Apple HTTP Live Streaming |
| .m3u8 |
二进制文件 |
| .bin |
Filmbox |
| .fbx |
GL 传输格式 (JSON) |
| .gltf |
图像 |
| .jpg, .png, .gif, 等等 |
JSON |
| .json |
JSON-LD |
| .jsonld |
材料交换格式 |
| .mxf |
Microsoft Excel (旧版) |
| .xls |
Microsoft Excel (OpenXML) |
| .xlsx |
Microsoft Word (旧版) |
| .doc |
Microsoft Word (OpenXML) |
| .docx |
MPEG-DASH |
| .mpd |
| ||
多边形文件格式 |
| .ply |
PostScript |
| .ps, .eps, 等等 |
文本文件 |
| .txt, .md, 等等 |
U3D 网格 |
| .u3d |
USDZ 压缩包 |
| .usdz |
视频 |
| .mp4, .avi, .mkv, 等等 |
如果您想指定自己的允许文件类型,请在 media
属性中添加以下内容
//tina/config.{ts,js}export default defineConfig({// ...media: {tina: {//..},accept: ['image/jpeg', 'video/mp4'],},});
如果您使用的是 NextJS 图像,您需要在 next.config.js
文件中添加如下内容以允许访问外部图像。
module.exports = {images: {remotePatterns: [{protocol: 'https',hostname: 'assets.tina.io',port: '',},],},};
在这里了解更多关于远程模式的信息。
上传文件到 TinaCloud 时,允许的最大文件大小为 100 MiB。
基于仓库的媒体设计用于单一分支工作流。如果您的项目使用多个分支或编辑工作流,需要注意一些已知的限制。
如果您在非默认分支上配置 Tina(且 Tina 配置尚未合并到您的默认分支),您可能会在 TinaCloud 媒体设置中看到此消息:
要解决此问题,您可能需要在将 Tina 合并到默认分支后启用媒体。