我在我的网站上使用了django-discus包(https://github.com/arthurk/django-disqus),它在dev中很好地工作。但是我的生产服务器运行在https上,当我查看页面时,我得到一个错误,并且没有加载discus注释。控制台中显示的错误说明代码被阻止,因为它正试图从。。。discus.com/count.js和。。。discus.com/embed.js和内容应通过HTTPS加载。在
有人知道我怎么解决这个问题吗?我看了一下文档http://django-disqus.readthedocs.org/en/latest/,但找不到提到的这个。在
编辑2(2014年7月15日):
django-discus的最新版本已经上传到pypi,可以通过pip或easy-tu安装来安装。这包括使用与协议相关的url的模板,因此现在可以很容易地在HTTP或HTTPS服务的站点上使用它。在
编辑(2014年7月4日):
我已经联系了存储库所有者并获得了访问权限。最新的合并到主服务器支持协议相关的url。它可以使用pip直接从github安装:
原始答案:
只需快速查看一下github上django-discus的代码
https://github.com/arthurk/django-disqus/blob/master/disqus/templates/disqus/show_comments.html
看起来http协议是硬编码的。github上已经有一个开放的问题来支持这一点,但是代码似乎暂时没有被触及,这意味着作者可能不感兴趣(另外,还有10个打开的拉取请求,这也不是一个好兆头)。在
https://github.com/arthurk/django-disqus/issues/18
最简单的解决方案是:
在你的设置.py文件,确保你的模板配置是这样的(我在我的所有项目上都这样做,这样我就可以轻松地覆盖一些第三方应用程序中的模板,方法是在我的网站中提供一个替代模板:
^{pr2}$在您的机器上找到django-discus包,并将“templates”文件夹复制到与您的相同的文件夹中设置.py文件(如果你像我上面展示的那样做)
如果您只想使用HTTPS,只需打开模板文件,将使用的协议从HTTP修改为HTTPS就可以了。在
为什么这样有效
什么时候调用一个呈现模板的函数(比如django.shortcuts.render). 在
Django使用一系列模板加载器类来确定模板的确切位置。在
文件系统.Loader我首先指定的,将首先使用指定给TEMPLATE_DIRS的元组中列出的任何目录。在
第二,如果没有找到应用程序的模板_目录。加载器,它将在名为“templates”的子目录下搜索任何已安装的应用程序,以找到与模板请求匹配的路径。这通常是我喜欢的行为,因此,正如我上面提到的,我可以直接从我的项目中覆盖第三方应用程序的模板。在
相关问题 更多 >
编程相关推荐