成功的应用程序重建后出现错误 500(资产“.js”在资产管道中不存在)

在我们的 discourse 实例上执行了 git pull 并重建了应用程序,虽然这似乎按预期工作,但网站现在返回 500 错误。

安全模式也有同样的问题,我可以查看此页面并选择禁用所有内容,但在此页面后仍然出现 500 错误。

/logs 页面确实列出了一个错误,但不确定这是否是罪魁祸首。 (info log) (backtrace log)

禁用插件和重建没有任何区别。
有问题的网站是 The Language Archive Forums - Forums of The Language Archive and ELAN

你能指出问题所在吗?

您可以尝试运行

docker logs

以及

tail /var/discourse/shared/standalone/logs/rails/production.log

这看起来是关键部分:

ActionView::Template::Error (The asset \".js\" is not present in the asset pipeline.
)
app/helpers/application_helper.rb:93:in `script_asset_path'
app/helpers/application_helper.rb:146:in `block in preload_script'
app/helpers/application_helper.rb:145:in `map'
app/helpers/application_helper.rb:145:in `preload_script'
app/views/layouts/application.html.erb:40
app/controllers/application_controller.rb:128:in `block (2 levels) in <class:ApplicationController>'
app/controllers/application_controller.rb:420:in `block in with_resolved_locale'
app/controllers/application_controller.rb:420:in `with_resolved_locale'
app/controllers/application_controller.rb:128:in `block in <class:ApplicationController>'
lib/middleware/omniauth_bypass_middleware.rb:74:in `call'
lib/content_security_policy/middleware.rb:12:in `call'
lib/middleware/anonymous_cache.rb:389:in `call'
lib/middleware/gtm_script_nonce_injector.rb:10:in `call'
config/initializers/100-quiet_logger.rb:20:in `call'
config/initializers/100-silence_logger.rb:29:in `call'
lib/middleware/enforce_hostname.rb:24:in `call'
lib/middleware/request_tracker.rb:233:in `call'

这可能是 Discourse 的一个 bug,但可能性很小。

你好 Jeroen!

@pfaffman 已经预料到了,这最终成为了一个核心的 PR,意外地破坏了像你这样的子文件夹设置(例如 /forums),但我们已经撤销了它。撤销操作已包含在 tests-passed 分支中,因此如果你通过管理界面更新或运行 launcher rebuild,你将获得修复。

对于由此带来的问题表示歉意,并感谢大家提出这个问题!看到这个站点使用了子文件夹有助于我们查明原因。

3 个赞

太好了,感谢您如此迅速地提供帮助,我很高兴我们的设置有助于在您那边定位到此 bug。
我将重建应用程序,并会向您汇报。

编辑:已成功重建应用程序,一切又在运行了。谢谢!

1 个赞

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.