更新后,网站无法访问

前几天我收到一封电子邮件通知,说我自托管的 Discourse 网站(Ubuntu 18.04.6 on Contabo)需要更新,所以我去了管理页面进行更新。像往常一样,我首先需要更新 docker-manager,然后运行网站的其余更新。那个更新似乎卡住了——它进行到某个点就完全不动了。在大约一个小时后,我认为需要命令行干预,所以我 ssh 登录到服务器并执行了 cd /var/discourse; git pull; ./launcher rebuild app。这完成了,没有明显的错误,但我留下的网站看起来是这样的:
image

(这些点在现实生活中是动画的)。我认为软件可能只是需要一些时间来启动,所以我等待了——事实上,超过了一天——但没有任何变化。重启服务器没有效果,重新构建也没有效果。

有趣的是,我的用户仍然可以通过电子邮件发帖,并且网站也如预期地发送这些邮件。

我很想得到一些指导——我该怎么做才能让网站恢复正常?

嗨 Dan :slight_smile:

它在安全模式下工作嗎?如果可以的話,分享一個連結給我們檢查一下會很有幫助。

1 个赞

我不知道可以尝试安全模式,但是的,它似乎确实是以这种方式出现的。网站是:

1 个赞

如果它在安全模式下工作,那么可能是某个插件、主题或主题组件导致了冲突。您可以使用安全模式屏幕上的选项来帮助缩小范围。

禁用“非官方插件”似乎有效:

当尝试在非安全模式下加载您的网站时,我会在浏览器控制台中看到此错误:

Uncaught (in promise) Error: Could not find module `admin/models/admin-user` imported from `discourse/plugins/discourse-merge-users/discourse/components/merge-users-form`
    c loader.js:247
    c loader.js:258
    findDeps loader.js:168
    c loader.js:262
    requireModule loader.js:24
    Ember 3
    resolveOther resolver.js:241
    Ember 5
    initialize colocated-template-overrides.js:31
    eachThemePluginTemplate colocated-template-overrides.js:41
    initialize colocated-template-overrides.js:22
    initialize app.js:41
    runInstanceInitializers Ember
    each dag-map.js:192
    walk dag-map.js:121
    each dag-map.js:66
    topsort dag-map.js:72
    Ember 4
    invoke queue.ts:201
    flush queue.ts:98
    flush deferred-action-queues.ts:75
    _end index.ts:616
    _boundAutorunEnd index.ts:257
    promise callback*n/
    flush Ember
    _scheduleAutorun index.ts:803
    _ensureInstance index.ts:791
    schedule index.ts:384
    Ember 6
    
    
    
loader.js:247

这指向 discourse-merge-users 的问题。您可以尝试在不使用该插件的情况下重新构建,看看是否是问题所在。:+1:

查看插件主题,似乎它已被弃用,这是一个已知问题:

1 个赞

这似乎确实是问题所在;在禁用该插件的情况下重建可以解决问题——尽管有趣的是,您分享的主题表明问题出现在非管理员用户身上,而我却是管理员。但是禁用它之后,网站现在似乎又可以正常工作了。感谢您快速而准确的帮助。

1 个赞

没关系。很高兴能帮到你。 :slight_smile:

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