运行 watch 时出现错误 422 - about.json 不存在

你好,

希望有人能在这里提供帮助。

作为背景,我从之前的代理机构接手了这个论坛,在此之前我从未接触过 Discourse。

我需要对主题进行修改(以修复 id:discourse.component-template-resolving notice)。

我已经按照指南设置了 CLI。我设法连接到 API 并下载了主题文件。

但是,当我尝试运行 discourse_theme watch . 时,我遇到了以下错误:

✘ 错误 422 https://forum.mywebsite.co.uk/admin/themes/import.json: 导入错误:about.json 不存在或无效。您确定这是一个 Discourse 主题吗?

我已经检查了以下几点:

  • 我在正确的文件夹中操作。
  • about.json 的名称和格式均正确
    • 我在其中也包含了作者和版本号
    • 编码是正确的
  • 所有目录都存在

我曾怀疑可能是 API 权限问题,但如果我已经连接并且 admin/api/keys/settings 中的范围是正确的并且存在,那么它应该不是权限问题吧?

基本上,我卡住了。有人能指点我一下吗?

3 个赞

我记得类似的情况仍然是API问题:你能检查一下你的API密钥设置吗,它必须设置为global并且设置为特定用户,而不是所有用户。

3 个赞

你好 Charlie,

谢谢你的回复。我正在使用的 API 密钥已经设置为全局和特定用户。

但是,我已经针对一些版主/管理员创建了 2 个新的密钥(以防万一它不喜欢当前的管理员用户),但结果还是一样。

谢谢 :slight_smile:

1 个赞

抱歉,只是为了更新此内容,我还创建了一个全新的主题 discourse_theme new <dir>,并且在我运行 watch 命令时它再次失败,因此正如您之前提到的,这排除了主题存在问题的可能性。

1 个赞

抱歉,这就是我关于“如何运行”设置的全部知识了 :sweat_smile:

我相信很快会有更有知识的人来帮助你。

我主要是在尝试在插件上运行命令时看到这个错误(这行不通),但你说它是一个主题,或者是在 .json 中存在格式错误,但你已经检查过了…… :thinking:

2 个赞

位置可能有所不同,但您是否查看过 ~/.discourse_theme 文件?

我之前遇到过一个问题,我的终端模拟器使用了“带括号的粘贴模式”。

您可以在下方看到区别(这些不是真实的密钥,我已将其截断以便分享)……如果您看到类似第一个条目带有转义字符的内容,那是不正确的,并且将无法正常工作。

image

您好 Kris,

谢谢您的回复,我之前没想到这一点!

我检查了我的 discourse_theme 文件,虽然 API 密钥的格式是正确的,但与其他示例(包括您的)相比,该文件本身看起来有些格式错误。

值得注意的是,我使用的是 macOS,这是在 iTerm 中运行 cat ~/discourse_theme 的结果。

"/Users/firstname.lastname/_dev/_dru/site-discourse-forum/src":
  url: https://forum.site.co.uk
  theme_id: 2
api_keys:
  ! '':
  https://forum.site.co.uk: [API_KEY]
"/Users/firstname.lastname/_dev/_dru/site-discourse-forum":
  url: https://forum.site.co.uk

我将着手清理这个问题,因为这有可能是原因。

编辑:不行。删除了 ! ‘ ‘: 和第二个条目。结果一样。:melting_face:

1 个赞