是的,不建议取消勾选该设置。CSP(内容安全策略)默认启用,原因非常充分。如果您需要白名单化一些通常会被 CSP 标记的脚本,可以将它们添加到您站点的 content_security_policy_script_src 设置中,这样它们就能正常工作而不会出现问题。如果您想进一步了解,可以阅读:
该设置默认不是未勾选的吗?
不,该设置默认启用已有一段时间了。
奇怪,我们的网站在一月份甚至还不存在,但默认选项却没有被选中。
谢谢乔,
我已将 Twitter 时间线的脚本加入白名单,现在勾选 CSP 选项后已可正常工作。
能否将 Twitter 时间线的背景色更改为与论坛背景相匹配?
这并不容易,因为它嵌入在 iframe 中,无法直接通过添加 CSS 实现。不过 Stack Exchange 上有各种建议,但不确定哪些有效,例如:
由于 Discourse 的懒加载(如果这个术语不准确还请见谅),我认为任何 JavaScript 解决方案都需要:
<script type="text/discourse-plugin" version="0.8">
api.onPageChange(() => {
在此处执行操作
});
</script>
你好,
在将 Twitter 侧边栏安装到生产环境后,我们遇到了问题:仪表盘无法加载“注册”或任何单独的报告,它一直加载但从未完成。Discourse 版本为 2.4.1,最近已升级。当我移除 Twitter 侧边栏组件后,一切正常。请问这可能是什么原因?
谢谢
我的安全策略设置和您一样。奇怪的是,当我移除 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 的依赖吗?

