여기에 제공된 지침에 따라 작은 Django 웹 앱을 배포하는 데 어려움을 겪고 있습니다 . 내 개발에서 내 앱을 빌드하는 데 sqlite3 만 사용했으며 모든 것이 Django 개발 서버에서 잘 작동합니다. Heroku에 배포하려고하면 "푸시가 거부되었습니다. Cedar 지원 앱이 감지되지 않았습니다."라는 오류가 표시되지만 앱을 시작하고 실행하는 데 필요한 모든 파일이있는 것 같습니다. 며칠 동안 성공하지 못 했으므로 어떤 제안과 도움을 받겠습니다. 아래는 내 앱의 스케치이지만 내 github repo 에서 모든 것을 자유롭게 선별하십시오 .
landcrab/
landcrab/ <----- main project
settings/
__init__.py
base.py
local.py
production.py
__init__.py
urls.py
db.sqlite3
wsgi.py
vcrental/ <----- my app
admin.py
....
static/
....
.gitignore
db.sqlite3
manage.py
Procfile
requirements.txt
runtime.txt
에서 manage.py
와 wsgi.py
나는 한 세트os.environ.setdefault("DJANGO_SETTINGS_MODULE", "landcrab.settings.production")
프로필
web: gunicorn landcrab.wsgi --log-file -
requirements.txt (사용 된 pip 동결)
Django==1.7.1
dj-database-url==0.3.0
dj-static==0.0.6
django-toolbelt==0.0.1
gunicorn==19.1.1
jsmin==2.0.11
nose==1.3.4
psycopg2==2.5.4
pyparsing==2.0.3
python-dateutil==2.2
pytz==2014.9
six==1.8.0
static3==0.5.1
runtime.txt
python-3.4.2
설정 파일의 경우이 구조 를 따르려고했습니다.
Production.py
from landcrab.settings.base import *
import dj_database_url
DEBUG = False
TEMPLATE_DEBUG = False
# Parse database configuration from $DATABASE_URL
DATABASES['default'] = dj_database_url.config()
# DATABASES['default'] = dj_database_url.config(default='postgres://user:pass@localhost/dbname')
# DATABASES['default']['ENGINE'] = 'django.db.backends.postgresql_psycopg2'
# DATABASES = {'default': dj_database_url.config(default=os.environ.get('DATABASE_URL'))}
# DATABASES = {'default': dj_database_url.config(default='postgres://localhost')}
# Honor the 'X-Forwarded-Proto' header for request.is_secure()
SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https')
# Allow all host headers
ALLOWED_HOSTS = ['*']
그리고 마지막으로 wsgi.py
import os
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "landcrab.settings.production") #Edited by me
from django.core.wsgi import get_wsgi_application
#Added by me for Heroku
try:
from dj_static import Cling
application = Cling(get_wsgi_application())
except:
application = get_wsgi_application()
이건 좀 ... 부끄러워. Heroku에 배포하기 전에 변경 사항을 커밋하지 않았습니다. 커밋 후 오류없이 배포 할 수있었습니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다