我正在创建一个
django应用程序,并在设置我的本地测试环境的过程中.我可以成功地使manage.py runserver工作,但我的浏览器指向http://127.0.0.1:8000/,http://0.0.0.0:8000 /或http:// localhost:8000 /的任何变体返回“此网站无法访问”错误.
同时,django将抛出301错误:
Starting development server at http://0.0.0.0:8000/ Quit the server with CONTROL-C. [11/Jul/2017 23:35:37] "GET / HTTP/1.1" 301 0
我已成功将应用程序部署到Heroku(所有URL都在那里工作),但我无法在本地计算机上运行它.我也尝试过heroku本地包含的dev服务器同样的效果.
作为参考我的django urls.py文件看起来像:
from django.conf.urls import url from django.contrib import admin from recs.views import Request1,Check1,index urlpatterns = [ url(r'^$',index,name='index'),url(r'^admin/',admin.site.urls),url(r'^analyze1/',Request1),url(r'^analyze1/status/',Check1),]
任何帮助赞赏!
编辑:
发布Settings.py
import os import recs.environment_vars as e_v # Build paths inside the project like this: os.path.join(BASE_DIR,...) BASE_DIR = os.path.dirname(os.path.abspath(__file__)) # Quick-start development settings - unsuitable for production # See https://docs.djangoproject.com/en/1.10/howto/deployment/checklist/ # Security WARNING: keep the secret key used in production secret! SECRET_KEY = 'KEY HIDDEN' # Security WARNING: don't run with debug turned on in production! DEBUG = True # Honor the 'X-Forwarded-Proto' header for request.is_secure() SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO','https') ALLOWED_HOSTS = ['*'] # Application deFinition INSTALLED_APPS = [ 'django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.contrib.staticfiles','recs',] MIDDLEWARE_CLASSES = [ 'sslify.middleware.SSLifyMiddleware','django.middleware.security.SecurityMiddleware','django.contrib.sessions.middleware.SessionMiddleware','django.middleware.common.CommonMiddleware','django.middleware.csrf.CsrfViewMiddleware','django.contrib.auth.middleware.AuthenticationMiddleware','django.contrib.auth.middleware.SessionAuthenticationMiddleware','django.contrib.messages.middleware.MessageMiddleware','django.middleware.clickjacking.XFrameOptionsMiddleware',] ROOT_URLconf = 'recs.urls' TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates','Dirs': ['recs/templates',],'APP_Dirs': True,'OPTIONS': { 'context_processors': [ 'django.template.context_processors.debug','django.template.context_processors.request','django.contrib.auth.context_processors.auth','django.contrib.messages.context_processors.messages',},] Wsgi_APPLICATION = 'recs.wsgi.application' # Database # https://docs.djangoproject.com/en/1.10/ref/settings/#databases # Internationalization # https://docs.djangoproject.com/en/1.10/topics/i18n/ LANGUAGE_CODE = 'en-us' TIME_ZONE = 'America/Los_Angeles' USE_I18N = True USE_L10N = True USE_TZ = True # Static files (CSS,JavaScript,Images) # https://docs.djangoproject.com/en/1.10/howto/static-files/ STATIC_ROOT = os.path.join(BASE_DIR,'staticfiles') STATIC_URL = '/static/' STATICFILES_Dirs = ( os.path.join(BASE_DIR,'./static'),) STATICFILES_STORAGE = 'whitenoise.django.GzipManifestStaticFilesstorage' # Logs LOGGING = { 'version': 1,'disable_existing_loggers': False,'formatters': { 'verbose': { 'format': ('Application Log: ' + '[%(levelname)s] %(asctime)s [%(process)d] ' + 'pathname=%(pathname)s lineno=%(lineno)s ' + 'funcname=%(funcName)s %(message)s'),'datefmt': '%Y-%m-%d %H:%M:%s' },'simple': { 'format': '%(levelname)s %(message)s' } },'handlers': { 'console': { 'level': 'DEBUG','class': 'logging.StreamHandler','formatter': 'verbose' } },'loggers': { 'clothing_recommendation.clothing_recommendation': { 'handlers': ['console'],'level': 'DEBUG' } } } import urlparse # Celery + Redis - For long-lived asynchronous tasks (e.g. email parsing) # Redis redis_url = urlparse.urlparse(os.environ.get('REdis_URL')) CACHES = { "default": { "BACKEND": "redis_cache.RedisCache","LOCATION": "{0}:{1}".format(redis_url.hostname,redis_url.port),"OPTIONS": { "PASSWORD": redis_url.password,"DB": 0,} } } # Celery #CELERYD_TASK_SOFT_TIME_LIMIT = 60 broKER_URL=os.environ['REdis_URL'] CELERY_RESULT_BACKEND=os.environ['REdis_URL'] CELERY_ACCEPT_CONTENT=['json'] CELERY_TASK_SERIALIZER = 'json' CELERY_RESULT_SERIALIZER = 'json' CELERY_TASK_RESULT_EXPIRES = 300 CELERYD_MAX_TASKS_PER_CHILD = 2 broKER_TRANSPORT_OPTIONS = {'confirm_publish': True} # Hack to prevent Failed 'success' of tasks,per MT's experience with RabbitMQ - probably doesnt work with Redis? But worth trying
解决方法
OP在最初的问题’评论中发布了解决方案,但他/她似乎忘记将其作为一个发布者发布.所以这里是:
Ok so the problem is because of the https,thus getting redirected,as localhost is working on http,try to comment out this line and check SECURE_PROXY_SSL_HEADER = (‘HTTP_X_FORWARDED_PROTO’,‘https’) and also comment out the sslify from middleware as said by @ShobhitSharma
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。