【问题标题】:Problems with SSL(django-sslserver) on Django projectDjango 项目中的 SSL(django-sslserver) 问题
【发布时间】:2014-04-03 06:10:15
【问题描述】:

我在virtualenv 中使用Django 1.6.2,Ubuntu 12.04 LTS。因为我想将我的项目转移到https,所以我安装了django-sslserver
该项目需要自签名,并且适用于主页。但是,我的 django 项目中的应用程序遇到了问题。并非所有页面都重定向到 https,因此会导致 404 错误(仅在显式前缀为 https 时才有效)。此外,整个模板(外观即静态文件?)丢失了。 这里到底发生了什么?如何确保所有页面都被重定向到https 并且工作方式与http 相同?

【问题讨论】:

    标签: python django ssl


    【解决方案1】:

    已编辑:我的拉取请求已被合并。静态资源现在可以正常服务了。

    问题是runsslserver 命令没有被实现来服务静态资源。一种解决方法是在PATH_TO_PYTHON_SITE_PACKAGE/sslserver/management/commands/runsslserver.py 中覆盖get_handler,如下所示:

    # ...
    from django.contrib.staticfiles.handlers import StaticFilesHandler
    from django import get_version
    
    # ...
    
    class Command(runserver.Command):
        # ...
    
        help = "Run a Django development server over HTTPS"
    
        def get_handler(self, *args, **options):
            """
            Returns the static files serving handler wrapping the default handler,
            if static files should be served. Otherwise just returns the default
            handler.
    
            """
            handler = super(Command, self).get_handler(*args, **options)
            use_static_handler = options.get('use_static_handler', True)
            insecure_serving = options.get('insecure_serving', False)
            if use_static_handler:
                return StaticFilesHandler(handler)
            return handler
    
        # ...
    

    您可能希望获取您的站点包路径

    python -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())"
    

    我还提交了pull request,以防您想自行分支、合并和重新安装它作为一个包。

    干杯

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-05
      • 2017-04-02
      • 2011-01-01
      • 2012-09-10
      • 1970-01-01
      相关资源
      最近更新 更多