404 当在用户页面末尾添加 .js 时页面崩溃

这不是一个非常重要的 bug,但在访问论坛上一个以 .js 结尾但不存在的用户页面时,CSS 无法渲染。

1 个赞

@RiversideRocks 并不期望返回数据。

他只是指出,当链接(如他所发布的)具有 .js 扩展名时,404 页面并未按预期显示,因此他创建了该主题:

看起来确实合理:当扩展名错误(本例中为 .js)时,应返回格式正确的 404 页面。因为当使用其他扩展名(例如 .xml)时,404 页面的格式是正确的:

@RiversideRocks 只是指出,当 .js 扩展名被作为 404(文件未找到)处理时,返回的 404 页面并未按预期美观地格式化。

3 个赞

没错,你说得对。楼主也没错。

这是一个令人好奇的差异。我想了解为什么会发生这种情况。

出于好奇,人们最初为什么要尝试打开这类 .js 路由呢?

3 个赞

我认为,从宏观层面来看(我完全不是 Ember 专家,所以只是泛泛而谈),出现这种情况的原因是 Discourse 尝试加载带有 .js 扩展名的文件,因此控制台会出现 JavaScript 404 错误,这导致 Discourse 的 Ember 404 页面无法完全加载(JS 加载失败)。

3 个赞

我在想,这是否与 Discourse 检测到 .js 文件后缀时发出的响应头有关,但听起来这应该是正确的。

@RiversideRocks

如果这真的让你困扰,你可以添加自己的 CSS 来美化该页面,这样即使 JS 失败,它看起来依然很美观 :slight_smile:

不过就像 @merefield 提到的,何必为此担心呢?毕竟那不是一个正常或受支持的链接/路由?

2 个赞

我从未太在意,只觉得这是一个有趣的漏洞,想分享给大家。

4 个赞

关于不寻常的路径问题,帖子 URL 末尾的 .js 扩展名会导致错误,尽管该页面 确实 存在。
https://meta.discourse.org/t/404-page-breaks-when-js-is-added-to-the-end-of-a-user-page/161777/8.js

1 个赞