You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Rails应用上传Liquid文件至Shopify Snippets目录为空问题排查

解决ShopifyAPI上传本地Liquid文件到Snippets目录为空的问题

你遇到的问题根源在于用错了ShopifyAPI::Asset的参数——src是用来指定远程文件的URL的,不是本地文件路径。Shopify没法直接读取你Rails服务器上的本地文件,所以生成的snippet自然是空的。

正确的做法是先读取本地文件的内容,再通过body参数把内容传给Asset对象。这里给你完整的修正代码:

# 获取本地Liquid文件的绝对路径
file_path = Rails.root.join("public/sample-js.liquid")

# 读取文件内容(注意确保文件存在且应用有读取权限)
file_content = File.read(file_path)

# 创建Asset并上传到Shopify店铺的snippets目录
asset = ShopifyAPI::Asset.new(
  key: "snippets/sample-js.liquid",
  body: file_content
)
asset.save!

额外给你几个小提示:

  • 可以先通过File.exist?(file_path)检查文件是否存在,避免读取不存在的文件报错
  • 如果文件内容特别大,用File.open(file_path, 'r') { |f| f.read }的方式读取更高效
  • 用save!会在上传失败时抛出异常,方便你调试问题;如果想静默处理可以用save,然后检查返回值判断是否成功

内容的提问来源于stack exchange,提问作者rmn.nish

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 08:57:39