在https si上使用djangadiscus

2024-06-08 02:43:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我在我的网站上使用了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/,但找不到提到的这个。在


Tags: django代码httpsdevgithub服务器com网站
1条回答
网友
1楼 · 发布于 2024-06-08 02:43:56

编辑2(2014年7月15日):

django-discus的最新版本已经上传到pypi,可以通过pip或easy-tu安装来安装。这包括使用与协议相关的url的模板,因此现在可以很容易地在HTTP或HTTPS服务的站点上使用它。在

编辑(2014年7月4日):

我已经联系了存储库所有者并获得了访问权限。最新的合并到主服务器支持协议相关的url。它可以使用pip直接从github安装:

pip install git+https://github.com/arthurk/django-disqus

原始答案:

只需快速查看一下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”的子目录下搜索任何已安装的应用程序,以找到与模板请求匹配的路径。这通常是我喜欢的行为,因此,正如我上面提到的,我可以直接从我的项目中覆盖第三方应用程序的模板。在

相关问题 更多 >

    热门问题