我无法嵌入 YouTube 视频
您有什么问题?
有什么办法解决这个问题吗?有什么设置会直接与此相关吗?
它是否在安全模式下发生?浏览器有错误吗?谢谢。
我尝试了一切,但都没有奏效
我网站上的所有 YouTube 视频都无法正常播放,并出现此错误
@hameedacpa,你还没有……为了证明这一点,这似乎在别处已经解决了:
你是否已经尝试过任何在线解决方案?
我不认为这与我的情况有关
@hameedacpa,为什么?这是相同的错误代码。
抱歉,我尝试了推荐的解决方案,但它不起作用,我认为是内部问题
不确定这是否相关,但我看到很多 cookie 被阻止。
另外,控制台中没有错误,在安全模式下仍然发生…
@hameedacpa 考虑将 https://youtube.com/ 添加到 allowed_iframes 设置中?不确定这是否有帮助。
希望这能帮助到 OP 的抱怨 +1。在没有任何更改的情况下(我在稳定分支上),即使点击播放曾经可以正常播放的现有视频,我也会遇到同样的错误:
我尝试过通过手机、绕过公司防火墙、禁用 Cloudflare。仍然没有解决。
在这里测试时,编辑器中出现错误,但在论坛中显示正常:
更新:
我找到了这篇文章,其中提到 YouTube 最近收紧了其政策,因此新的嵌入代码现在包含 referrerpolicy=“strict-origin-when-cross-origin” 以及更新的 allow 属性:
没有这些,YouTube 将拒绝来自 iframe 的配置请求,您将看到错误 153。
我通过 Cloudflare 解决了这个问题,直到官方补丁发布为止。
对于遇到同样问题的任何人,原因是 YouTube 现在会拒绝缺少有效 Referrer-Policy 标头的嵌入请求。
我通过 Cloudflare 的转换规则添加了一个 Referrer-Policy 标头(无需 Workers)。
我所做的如下:
在 Cloudflare 中,转到规则 → 转换规则 → HTTP 响应标头修改。
创建一个新规则,选择所有传入请求,然后添加一个静态标头:
Header name: Referrer-Policy
Value: strict-origin-when-cross-origin
部署规则。
一旦打上补丁,我就会删除它。
嗯 ![]()
据我所知,Discourse 的工作方式是,你在该容器内所做的 Nginx 更改将在下一次 ./launcher rebuild app 或通过 UI 升级时被清除。
如果你希望此更改得以保留,你不应该在正在运行的 Discourse 容器内进行编辑。而应该在 /var/discourse/containers/app.yml 中进行更改,以便在重建和更新时得以保留。
添加后,你可以重建:
./launcher rebuild app
并非每个人都使用 Cloudflare,但这就是我选择 Cloudflare 来解决此问题的原因。无需重建,只是一个临时的解决方法。
由于安全标头的工作方式是浏览器会优先处理最后收到的标头,因此有效。
这只是最快、侵入性最小的解决方案,可以使事情正常运行。但如果你在容器内进行操作,请记住每次重建或更新 Discourse 时都必须重新进行。![]()
几个月前我们也遇到了同样的问题,但只影响了 3 位用户。我们的主机管理员不在,没有人可以访问主机设置,我们想出了这个办法:
编辑主题并在 <HEAD> 中添加此内容:
<meta name="referrer" content="strict-origin-when-cross-origin">
您的解决方案适用于此元标记
<meta name="referrer" content="strict-origin-when-cross-origin">