【问题标题】:How to make game use https when played via facebook and http when played from other domain如何在通过 facebook 玩游戏时使用 https 并在从其他域玩游戏时使用 http
【发布时间】:2014-02-07 19:57:51
【问题描述】:

我们的用户直接通过我们的域(名为 herokuapp.com)玩我们的 Django 游戏。我们通过 http 请求我们的资产。

我们想将我们的游戏添加到 facebook,这需要使用 https。 Heroku 可以处理这个问题。

使用 https 请求:我们的游戏在 facebook 上运行,但在通过我们的 cnamed 域访问时无法加载资产。

我们可以让我们的游戏在通过 facebook 玩时使用 https 并在从我们的域玩时使用 http 吗?我们必须在settings.py 中添加什么代码?

我们已经在settings.py 中尝试过这段代码,但没有成功

选项 1:

import socket
if socket.gethostname().startswith('app'):
  LIVEHOST = True
else:
  LIVEHOST = False

if LIVEHOST:
  STATIC_URL = "https://d******1.cloudfront.net/"
else:
  STATIC_URL = "http://d******1.cloudfront.net/"

选项 2:

import socket
if socket.gethostname().startswith('edge'):
  LIVEHOST = True
else:
  LIVEHOST = False

if LIVEHOST:
  STATIC_URL = "https://d******1.cloudfront.net/"
else:
  STATIC_URL = "http://d******1.cloudfront.net/"

【问题讨论】:

  • 你不能只使用//d******1.cloudfront.net/的设置吗?
  • karthik,作为答案的评论大师。是的,使用协议相对网址。
  • 不知道我以前怎么没有尝试过这个简单的东西。 @karthikr 将其作为答案发布,以便我接受。

标签: django ssl heroku https facebook-canvas


【解决方案1】:

您可以使用protocol relative urls 来避免担心要使用的协议的痛苦。

所以设置看起来像:

STATIC_URL = "//d******1.cloudfront.net/"

您可以安全地摆脱代码 sn-p 中的所有计算逻辑。

【讨论】:

    猜你喜欢
    • 2011-07-12
    • 1970-01-01
    • 1970-01-01
    • 2016-05-12
    • 2013-09-24
    • 1970-01-01
    • 2020-04-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多