我在Django 1.6.2
,Ubuntu 12.04 LTS中使用virtualenv
。由于我想将项目转移到https
,我安装了django-sslserver
。
项目需要自签名,并且适用于主页。但是,我的django项目中的应用程序遇到了问题。并非所有页面都被重定向到https
,因此会导致404错误(仅在明确加前缀为https
时才有效)。此外,整个模板(外观,即静态文件?)丢失。
到底发生了什么?如何确保所有网页都重定向到https
,其工作方式与http
相同?
答案 0 :(得分:4)
已修改:我的拉取请求已合并。现在通常会提供静态资源。
问题是没有实现runsslserver
命令来提供静态资源。一种解决方法是覆盖get_handler
中的PATH_TO_PYTHON_SITE_PACKAGE/sslserver/management/commands/runsslserver.py
,如下所示:
# ...
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,以防您想要自行分支,合并并重新安装。
干杯