带有嵌入式 Twitter 动态的社区

是的,不建议取消勾选该设置。CSP(内容安全策略)默认启用,原因非常充分。如果您需要白名单化一些通常会被 CSP 标记的脚本,可以将它们添加到您站点的 content_security_policy_script_src 设置中,这样它们就能正常工作而不会出现问题。如果您想进一步了解,可以阅读:

该设置默认不是未勾选的吗?

不,该设置默认启用已有一段时间了。

奇怪,我们的网站在一月份甚至还不存在,但默认选项却没有被选中。

谢谢乔,
我已将 Twitter 时间线的脚本加入白名单,现在勾选 CSP 选项后已可正常工作。

能否将 Twitter 时间线的背景色更改为与论坛背景相匹配?

这并不容易,因为它嵌入在 iframe 中,无法直接通过添加 CSS 实现。不过 Stack Exchange 上有各种建议,但不确定哪些有效,例如:

https://stackoverflow.com/questions/40674291/styling-a-twitter-feed-css-wont-target-timeline-tweet-text.

由于 Discourse 的懒加载(如果这个术语不准确还请见谅),我认为任何 JavaScript 解决方案都需要:

<script type="text/discourse-plugin" version="0.8">
    api.onPageChange(() => {
       在此处执行操作
    });
</script>

你好,

在将 Twitter 侧边栏安装到生产环境后,我们遇到了问题:仪表盘无法加载“注册”或任何单独的报告,它一直加载但从未完成。Discourse 版本为 2.4.1,最近已升级。当我移除 Twitter 侧边栏组件后,一切正常。请问这可能是什么原因?

谢谢

您启用了内容安全策略吗?我使用以下设置可以正常工作:

我运行的是 2.5.0.beta2 版本。我不确定这与报告有什么关系,但我可以在我的网站上生成所有报告。

我的安全策略设置和您一样。奇怪的是,当我移除 Twitter 侧边栏后,报告功能就开始正常工作了。

抱歉,我完全不知道如何处理涉及站点报告冲突的问题排查。

错误是 TypeError: document.getElementById(…) 为 null

看起来 #sidebar div 并非在每个页面上都插入?

可以通过正确检查元素是否为 null 来修复此问题。

api.onPageChange(() => {
    if (Discourse.User.current() !== null) { 
        var sb = document.getElementById("sidebar")
        if (sb) { 
            sb.style.display = "block"; 
        }
    } 
});
api.onPageChange(() => { 
    var is_iPad = navigator.userAgent.match(/iPad/i) != null;
    if(is_iPad)  {
        var sb = document.getElementById("sidebar")
        if (sb) { 
            sb.style.display = "none"; 
        }
    }
});

有人能帮我嵌入 Twitter 动态流吗?就像侧边栏那样。

我完全支持这个想法。有人成功帮助社区戒除对 Twitter 的依赖吗?