图片的 Shopify 文件和资产之间的区别

Difference between Shopify Files and Assets for images

在 Shopify 中,似乎有 2 个区域可以上传网站图片:Files(设置 -> 文件)和 Assets(主题编辑器 -> 资产文件夹)。这里有什么区别?为什么要将图像放在一起?

设置 -> 文件

这些是可以从任何主题访问的全局文件。您在那里存储不同的资产,例如,在图像选择器字段的自定义面板中上传的任何图像都在那里。还有一些其他资产,但仅此而已,它们是全局资产,可以从任何主题访问,即使您删除了通过自定义面板添加文件的主题。

此外,没有 API(截至目前)允许与之通信。也就是说APP不能直接上传文件到那里

主题 -> 资产

另一方面,主题资产被认为是特定主题的本地文件,如果您删除主题,这些文件就会消失,您将无法访问它们。

这些文件随主题一起提供,因此当您向商店添加新主题时,资产 (css/js/images) 也会随之而来。

有一个 API 允许您与资产 API 通信,因此 APP 可以写入和读取主题资产文件夹。

你为什么要用一个而不是另一个

这里没有特定的规则,您可以将它们中的任何一个用于文件,但是有一些好的做法。

如果您的主题需要特定功能 - 将这些文件添加到主题资产文件夹中。例如 CSS & JS 文件需要放在那里。为什么这么问?

有一个名为 ThemeKit 的工具可以让您直接在 assets 文件夹(和其他地方)中与主题和 read/write 文件进行通信,这使得开发人员的开发和调试变得更加容易。因此,如果您的 css 或 js 文件在 Settings -> Files 中上传,则无法 read/write 不下载并手动重新上传(这很痛苦)。

由于当您下载主题并将其上传到其他商店时,主题资产会随主题一起提供,因此它会正常工作。所以从这个意义上说,请在这些情况下使用主题资产。

另一方面,当您有特定的自定义选项时,某些主题可以选择 link 到 SVG 或 MP4 文件,因为无法添加它,通常管理员会在 Settings -> Files 部分和 copy/paste 全局 link 到自定义面板字段。

所以简单来说,主题资源是为了主题功能,而设置文件是为了自定义资源。

当涉及到图片时,通常大多数图片都可以通过带有 image_picker 字段的自定义面板进行管理,它们会直接将图片上传到 Settings -> Files,您无需执行任何操作。

但如果您有主题所需的静态图像(例如徽标)并且没有自定义选项,请将其添加到主题资产文件夹中。

TL;DR

主题资产是与相关主题严格相关的文件,而 Settings -> Files 是可以从任何主题访问的文件。

当您开发主题时,将所有文件写入主题资产文件中,以便在您喜欢或之后轻松修改主题时共享主题。

仅当您需要 link 到特定的全局资产或允许用户在主题的自定义设置中复制粘贴 link 时才使用 Settings -> Files

@drip 在这里是正确的,但我缺少一些我认为可能有用的信息。

主题有大小限制(目前为 50mb)。因此,如果您的主题有很多图片,并且它们都在资产文件夹中,那么如果超过阈值,您的主题可能无法上传。更不用说您可能不想将所有这些图像检查到您的主题库中。

您可以在此处使用 设置 -> 文件 部分来存储您的文件。然后您可以使用此处引用的 file_image_url 标签在您的主题中引用它们 https://shopify.dev/api/liquid/filters/url-filters#file_img_url

现在还有一个 API 用于这些资产的 CRUD

https://shopify.dev/api/admin-graphql/2022-04/mutations/filecreate

希望对未来的信息获取者有所帮助。