大家好,
我们正在开展一个小型项目,对 Discourse 进行定制,使用户直接跳转到“某个话题”页面,并在此页面上进行大量的客户端定制。用户直接进入话题页面,即可直接发布或回复该话题的讨论串。Discourse 被嵌入到移动应用的 WebView 中。我还移除了原有的编辑器,并自定义了一个简化版的编辑器,去除了部分选项。该自定义编辑器始终固定在页面底部,以便用户快速回复帖子。
我们的服务器最低配置为 2GB 内存(未使用 Docker)。当用户注册论坛后,我们会通过客户端重定向到某个话题页面,但有时重定向耗时在 10 到 25 秒之间。我尝试访问其他网站(如 swift.org),发现他们的 Discourse 加载速度非常快,通常只需 3 到 6 秒。我检查了网络标签页,发现加载的 JS 和 CSS 资源基本相同,唯一区别是移动端加载的是 “mobile.css” 版本。
请问我们的自定义 Discourse 可能存在什么问题?有什么优化方向吗?是否需要考虑提升服务器配置?目前我们的用户基数仅几百人,现阶段只有几位开发者在使用,却已经遇到这个问题。
pfaffman
(Jay Pfaffman)
2
您是否没有按照 Discourse 官方标准安装指南 进行操作,而是进行了开发环境安装?您描述的情况听起来像是开发环境安装下的预期性能表现。
您的修改是在插件中进行的,还是直接 Fork 了代码?
4 个赞
是的,我进行了分叉。我没有使用 Docker,主要在服务器端做了一些自定义调整,客户端方面的改动(如 JavaScript 和 CSS)则更多。官方安装文档关于自定义代码设置的说明不够清晰。您能告诉我哪里可以找到带有自定义代码的 Docker 配置吗?基本上,我只想从我的仓库拉取代码。[我是 Docker 新手]
riking
(Kane York)
4
自定义代码应始终构建为插件,而不是核心代码的分支。
我同意,您目前没有生产环境安装。请搭建一个正式的开发环境,创建您的插件,然后将其部署到正式的生产环境中。
3 个赞
pfaffman
(Jay Pfaffman)
5
1 个赞
所谓“自定义代码”,是指不修改 Discourse 的核心代码,仅通过一些 CSS 调整和 JavaScript 改动来满足我们的需求。我们只是希望根据某些设置,将用户直接重定向到主题讨论页面(类似这样)。
pfaffman
(Jay Pfaffman)
8
至少可以说,如果你只修改 JavaScript 和 CSS,很可能可以通过主题组件完成所有更改。如果你需要修改 Rails 后端的代码,则需要使用插件。
我建议你从上方提供的主题开发者链接开始,看看能否通过主题组件实现你的更改。
3 个赞