这是否意味着当人们从编码格式切换到 ASCII 时,不会重新生成 URL 别名?如果是这样,那么您之前编写的用于清除 URL 别名的一次性处理过程似乎无法适用于这些情况。
你好,
该拉取请求并未完全解决问题。如果 slug 中包含 + 号,则会显示 400 错误。
为确认这一点,我已将 slug 生成方式切换回“无”,编辑了标题并移除了其中的 + 号,然后重新切换为“编码”模式,400 错误随之解决。
具体情况是:当标题中包含 加号 时,会返回 400 错误。(可能还有其他字符也会导致此问题,目前我仅测试了 + 号。)
谢谢!
这是发生在主题 slug 还是分类 slug 中?
主题标识。尚未在分类中测试。
encoded 缩写生成器会移除所有 + 符号,因此我不明白你是如何得到那个结果的:
我刚刚在本地测试过,它们对我来说被正常移除了。
也许在您本地环境中情况不同。
我的网站语言是波斯语。您能否切换到波斯语后再进行测试?
要复现此问题,请创建一个主题,标题如下:
گربه های ایرانی + از نژاد خوبی برخوردار هستند
我的网址 slug 变成了不可读的格式,并返回 400 错误:
https://domain.ltd/t/%D8%A7%DA%A9%D8%A7%D9%86%D8%AA-%D9%BE%D8%B1%D9%85%DB%8C%D9%88%D9%85-%D9%88%D8%A8-%D8%B3%D8%A7%DB%8C%D8%AA-%D9%85%D9%88%D8%B2-%D8%B1%D8%A7%DB%8C%DA%AF%D8%A7%D9%86-%D8%A7%D8%B4%D8%AA%D8%B1%D8%A7%DA%A9-%D8%B4%D8%AE%D8%B5%DB%8C-%D8%A8%D8%B1%D8%A7%DB%8C-%DA%A/2067/40
只有你没有使用“og”的 +,而是使用了另一个看起来相似的波斯符号吗?你能分享一个能复现问题的字符串吗?
我编辑了之前的回复。确认一下,这是一个 +。
这很奇怪,对我来说,该标识符变成了
%DA%AF%D8%B1%D8%A8%D9%87-%D9%87%D8%A7%DB%8C-%D8%A7%DB%8C%D8%B1%D8%A7%D9%86%DB%8C-%D8%A7%D8%B2-%D9%86%DA%98%D8%A7%D8%AF-%D8%AE%D9%88%D8%A8%DB%8C-%D8%A8%D8%B1%D8%AE%D9%88%D8%B1%D8%AF%D8%A7%D8%B1-%D9%87%D8%B3%D8%AA%D9%86%D8%AF
你确定你运行的是最新版本并刷新了页面吗?
我运行的是最新版本。
我现在有些困惑。我创建了一个与损坏 slug 主题条件相同的新主题,它运行正常。正如你所说,可能问题并非由 + 号引起。
请允许我花些时间安装一个测试环境并进行一些测试。我会在此主题中更新更多信息。
谢谢
你从分享按钮获取的 URL 是那个吗?之前存在双重编码问题,我刚刚在最新的合并中修复了它。
查看此屏幕录像。
哦,我明白问题所在了。它只出现在超过 255 个字符的 slug 上,而且只在 66% 的情况下发生。我明天会着手修复。
我们也会遇到同样的问题:
奇怪的是,只有在从“最新”列表中点击进入主题时才会出现此问题。如果从其他主题链接到该页面,则一切正常。
完整链接:
https://rembetiko.gr/t/%CE%B3%CE%BD%CF%89%CE%BC%CE%B7-%CE%B3%CE%B9%CE%B1-%CE%B1%CE%B3%CE%BF%CF%81%CE%B1-%CE%BC%CF%80%CE%BF%CF%85%CE%B6%CE%BF%CF%85%CE%BA%CE%B9%CE%BF%CF%85-%CE%BC%CE%B5%CF%83%CF%89-%CE%B9%CE%BD%CF%84%CE%B5%CF%81%CE%BD%CE%B5%CF%84-%CE%BA%CE%B1%CE%B9-%CE%B5%CE%BA%C/38511/2
同样的问题,那个 slug 超过了 255 个字符。
在调查过程中,我发现有些类别根本无法加载。
我发现我们遇到了这类错误:
URIError: URI malformed
at decodeURIComponent (<anonymous>)
at a (https://rembetiko.gr/assets/ember_jquery-7dfac344d893a6c10c016353b994db2c6f42af630322ea6da3399c220fcc50ed.js:16:31208)
at Array.map (<anonymous>)
at o (https://rembetiko.gr/assets/ember_jquery-7dfac344d893a6c10c016353b994db2c6f42af630322ea6da3399c220fcc50ed.js:16:31136)
at P.recognize (https://rembetiko.gr/assets/ember_jquery-7dfac344d893a6c10c016353b994db2c6f42af630322ea6da3399c220fcc50ed.js:17:5729)
at t.applyToState (https://rembetiko.gr/assets/ember_jquery-7dfac344d893a6c10c016353b994db2c6f42af630322ea6da3399c220fcc50ed.js:17:22054)
at u.n.getTransitionByIntent (https://rembetiko.gr/assets/ember_jquery-7dfac344d893a6c10c016353b994db2c6f42af630322ea6da3399c220fcc50ed.js:17:24304)
at u.n.transitionByIntent (https://rembetiko.gr/assets/ember_jquery-7dfac344d893a6c10c016353b994db2c6f42af630322ea6da3399c220fcc50ed.js:17:23609)
at u.n.doTransition (https://rembetiko.gr/assets/ember_jquery-7dfac344d893a6c10c016353b994db2c6f42af630322ea6da3399c220fcc50ed.js:17:25611)
at u.n.transitionTo (https://rembetiko.gr/assets/ember_jquery-7dfac344d893a6c10c016353b994db2c6f42af630322ea6da3399c220fcc50ed.js:17:30132)
TypeError: Cannot read property 'responseJSON' of undefined
at n.error (https://rembetiko.gr/assets/application-5d69c42124908eb6b41549efae9db9b1df26741f3a45075c6bfd603bb5267a42.js:71:604)
at n.C (https://rembetiko.gr/assets/ember_jquery-7dfac344d893a6c10c016353b994db2c6f42af630322ea6da3399c220fcc50ed.js:8:17733)
at u.c.triggerEvent (https://rembetiko.gr/assets/ember_jquery-7dfac344d893a6c10c016353b994db2c6f42af630322ea6da3399c220fcc50ed.js:8:21275)
at e.t.trigger (https://rembetiko.gr/assets/ember_jquery-7dfac344d893a6c10c016353b994db2c6f42af630322ea6da3399c220fcc50ed.js:17:13392)
at u.c.transitionDidError (https://rembetiko.gr/assets/ember_jquery-7dfac344d893a6c10c016353b994db2c6f42af630322ea6da3399c220fcc50ed.js:8:21548)
at https://rembetiko.gr/assets/ember_jquery-7dfac344d893a6c10c016353b994db2c6f42af630322ea6da3399c220fcc50ed.js:17:11836
at f (https://rembetiko.gr/assets/ember_jquery-7dfac344d893a6c10c016353b994db2c6f42af630322ea6da3399c220fcc50ed.js:18:1126)
at T (https://rembetiko.gr/assets/ember_jquery-7dfac344d893a6c10c016353b994db2c6f42af630322ea6da3399c220fcc50ed.js:18:2503)
at E (https://rembetiko.gr/assets/ember_jquery-7dfac344d893a6c10c016353b994db2c6f42af630322ea6da3399c220fcc50ed.js:18:2402)
at y (https://rembetiko.gr/assets/ember_jquery-7dfac344d893a6c10c016353b994db2c6f42af630322ea6da3399c220fcc50ed.js:18:1896)
```\n这两个错误是否有关联?
(你可以在此自行查看:https://rembetiko.gr/c/%CE%AC%CE%BB%CE%BB%CE%B1-%CE%B8%CE%AD%CE%BC%CE%B1%CF%84%CE%B1/%CE%BC%CE%B9%CE%BA%CF%81%CE%AD%CF%82-%CE%B1%CE%B3%CE%B3%CE%B5%CE%BB%CE%AF%CE%B5%CF%82)
@Arta_S 和 @chrispanag,还有两个修复即将发布,一个针对长标题,另一个针对子类别。
以及
升级后,我们仍然收到这个错误 ![]()
在这种情况下,您需要重新生成 URL 别名。请尝试以下操作:
cd /var/discourse
./launcher enter app
rails c
Topic.update_all(slug: nil)
exit
exit
exit
距离上次更新两天前,我遇到了两个问题:
- 某些主题中的 URL 返回 400 错误请求
- 某些主题中的时间线消失
托管平台:Discourse ‘standard-plan’
能否请您帮忙?
抱歉,我的英语写得不好。