我已在用户名中启用了(部分)Unicode 字符,一切运行正常。
当我尝试在分类 slug 中使用 Unicode 字符时,系统将其转换为百分号编码并允许我保存更改,但我无法再访问该分类的主题列表,因为会收到 ERR_TOO_MANY_REDIRECTS 错误。
我似乎已通过 Rails 控制台解决了该问题:
Category.find(id).update(slug: ‘slug-without-unicode’)
这并非致命问题,但可能导致功能异常,因此建议要么完整实现该功能,要么加以防护。
3 个赞
simon
2
过去曾针对此问题做过一些工作,但我认为你遇到的情况尚未得到解决。我认为发生的情况是:你将 slug 生成方法 设置为 “ascii”,却直接输入了包含非 ASCII 字符的分类 slug。我可以在自己的网站上复现该问题,条件是 slug 生成方法 设置为 “ascii”,并在分类 slug 字段中直接输入以下文本(yetersizliği):
保存分类后:
随后尝试加载该分类列表时会失败。
如果我不在分类 slug 字段中输入任何内容,当 slug 生成方法 设置为 “ascii” 时,Discourse 会正确生成 slug。
当 slug 生成方法 设置为 “encoded” 时,无论我留空分类 slug 输入框,还是直接输入非 ASCII slug,Discourse 都能正确生成 slug。
因此,问题似乎在于:当 slug 生成方法 设置为 “ascii” 时,分类 slug 字段仍然允许输入非 ASCII slug。这会导致重定向问题,而该问题只能通过 Rails 控制台修复。
6 个赞
我确实是这样做的。我正在编辑一个之前已创建的分类,包括其名称和 slug。我并不知道“slug 生成方法”这个设置,尽管后来我发现它被设为了“ascii”,但 slug 仍然被编码了。
这种强制转换或许有一定道理,但前提是编码后的 slug 之后能够被识别,即以类似方式忽略该设置。
1 个赞
Falco
(Falco)
拆分了此话题
7