在我们的测试服务器上,我们使用的是Pyramid调试工具栏,但是,它会生成http://
指向静态内容(如CSS和JavaScript文件)的链接,而其余内容则通过HTTPS提供。这将导致混合内容警告,并破坏所有功能。有没有一种方法可以强制它生成HTTPS链接?
我知道有可能在Chrome中启用混合内容,并且这种方法行得通,但是对于整个质量检查小组来说,这并不是一个可行的解决方案。
可能有更好/更简单的方法来实现此目的,但是您可以做一件事来实现此目的,将_scheme='https'
参数添加到对的每次调用中request.static_url()
。
为此,您当然可以进行编辑pyramid/url.py
,但也可以在项目中进行以下操作__init__.py
:
from pyramid.url import URLMethodsMixin
URLMethodsMixin.static_url_org = URLMethodsMixin.static_url # backup of original
def https_static_url(self, *args, **kw):
kw['_scheme'] = 'https' # add parameter forcing https
return URLMethodsMixin.static_url_org(self, *args, **kw) # call backup
URLMethodsMixin.static_url = https_static_url # replace original with backup
static_url
像这样的作品的参数route_url
。从文档中:
请注意,如果_scheme作为https传递,而未传递_port,则假定_port值已作为443传递。同样,如果_scheme作为http传递且_port不被传递,则_port值被假定已传递为80。为避免此行为,每当您通过_scheme时,始终显式传递_port。设置“ _scheme”会自动强制端口443
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句