【问题标题】:chromecast loading the older version of my receiver appchromecast 加载我的接收器应用程序的旧版本
【发布时间】:2013-10-05 15:28:37
【问题描述】:

当我在 chromecast 设备上启动接收器应用程序时,它会转到托管我的 html 的 URL 以检索接收器应用程序以启动它。

但是,当我在托管服务器上更新 HTML 和 JS 源的内容并关闭 chromecast 上的应用程序并再次重新启动接收器应用程序时,我经常得到旧版本的应用程序,而不是更新的版本已经在服务器上。

我认为这一定是一些缓存问题。我已经通过调试端口(9222)通过开发人员工具禁用了缓存,由设备重新启动,创建了一个缓存清单,告诉它什么都不缓存,它仍然无法工作,每次我在设备上启动接收器应用程序时,它不断地从 URL 中拉取旧版本的应用程序。

对于我如何强制 chromecast 提取托管服务器上已有的最新版本,是否有人有任何提示或解决方案?

谢谢! :)

只是一个后续,在命令行上进行 curl 时,我将始终获得最新版本。只是 chromecast 设备不断获得旧版本。

【问题讨论】:

  • 如果有帮助,我的接收器应用程序托管在 github 页面(gh-pages 分支)上。可能是 CDN 尚未刷新数据的问题。

标签: google-cast


【解决方案1】:

当您的接收器可见时,在 Chrome 浏览器上打开 DEBUG (javascript) 控制台 http:// your chromecast ip:9222/

然后在控制台底部输入命令window.location.reload(true);。这在我每次尝试时都有效。这也是在您的应用程序中测试中断会话处理的好方法,因为刷新会中断页面​​设置的任何连接。所以它并不完美,但它会加载新内容。

【讨论】:

  • 此代码现在可以使用,但我建议进一步使用以坚持文档并使用 window.location.reload(true); (true 代表 forceGet——是否从缓存中加载)
  • 这个功能在这个时代(公元 2014 年 11 月下旬)仍然适用吗?当我尝试这样做时,我没有那么幸运地看到任何东西。
【解决方案2】:

您也可以尝试添加 <META HTTP-EQUIV="CACHE-CONTROL" CONTENT="NO-CACHE"> 到您的接收者页面。在我遇到这个问题的情况下,重新启动 chromecast 设备总是会清除缓存。

HTH, 阿里

【讨论】:

  • 这对我有用,而 window.close() 方法没有。谢谢
【解决方案3】:

如果当前已加载,Chromecast 将缓存接收器。如果它在主屏幕上,它将请求一个新的接收器。

您可以在 Chromecast 上启动另一个应用,然后再次启动 Receiver。

从命令行,您可以执行以下操作:

curl http://<ip of Chromecast>:8008/apps/YouTube

要启动 YouTube 接收器,然后您可以再次启动自己的。

【讨论】:

  • 因此,如果我在接收器中执行 window.close() 将其带到主屏幕然后再次启动接收器,chomecast 会从 URL 获取新版本吗?还是我需要像您上面建议的那样专门启动另一个应用程序,然后再次启动接收器?谢谢! :)
  • 一旦 window.close() 被调用,它不应该缓存它。 P.S,别忘了给答案打√。
  • 感谢您的确认 :) 如果这是这种行为并且我仍然在重新启动时获得旧版本的接收器应用程序,这意味着问题不在 chromecast 上,很可能是由于在代理服务器或 CDN 上缓存问题。
  • 如果您的接收器来自 CDN,则可能需要一段时间才能传播更改。
  • 我必须做一个 curl 192.168.x.x:8008/apps/YouTube -DELETE 才能让臭臭的工作。不知道为什么。此外,不幸的是:没有重新缓存。它是与以前相同的旧/损坏的接收器。 ://
猜你喜欢
  • 2018-10-01
  • 2014-06-17
  • 1970-01-01
  • 2013-10-02
  • 2011-12-25
  • 2019-07-08
  • 2020-05-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多