다른 사람들과 마찬가지로 쉬운 질문이 아닙니다. 그것은Django StaticFiles APP 및 Wsgi
https://bitbucket.org/sirex/django-starter/src
이 ..이 하나의 배포 및 전체 프로젝트를 만들기위한 buildout 및 모듈 장고 사용하고 여기에 같은 흥미로운 프로젝트 있어요 ... 설치 간단한-DIR 기반의 정적 파일 위치에 문제가 아니에요 한 번에. 당신은 dev에서 생산 모드로 쉽게 마이그레이션 할 수 있습니다. dir의 이름을 변경하고 "make"라고 입력하면됩니다. 파이썬 서버 및 아파치 mod_wsgi 작동하지 않습니다 : 기본 정적 파일 위치 : "var/htdocs/정적"입니다. 예를 들어, apps/myapp/myapp/static /과 같은 하나의 정적 디렉토리 위치로 덮어 쓸 수 있습니다. 이것은 파이썬 웹 서버에서 작동하지만 wsgi/apache에서는 작동하지 않습니다. wsgi 다른 기본 디렉토리를 볼 수 없습니다 .. 예 : http://localhost:8000/static/css/main.css 작동하지만 아파치와 동일한 URL이 작동하지 않습니다. 이 파일은 myproject/apps/myapp/myapp/static/css/main.css에 있습니다. 기본 정적 디렉토리는 var/htdocs/static =입니다.
StaticFiles 응용 프로그램의 설정에서 변경된 내용을 이해하는 한. py
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BUILDOUT_DIR, 'var', 'htdocs', 'static')
STATICFILES_DIRS = (
os.path.join(BUILDOUT_DIR, 'project', 'static'), # <-- why "project" and not "apps" I don't know X_X
)
아마도이 하나가 잘못되었습니다. 아파치 vhost는 기본 위치 ..와 함께 작동하고 "var/htdocs/static"으로 설정됩니다.
아마도 wsgi 스크립트에 문제가 있습니까?
#!/usr/local/bin/python2.6
import os,sys
sys.path[0:0] = [
'/usr/local/lib/python2.6/site-packages/',
'/www/webapp/visimes/eggs/PIL-1.1.7-py2.6-freebsd-8.1-RELEASE-amd64.egg',
'/www/webapp/visimes/eggs/South-0.7.3-py2.6.egg',
'/www/webapp/visimes/eggs/django_annoying-0.7.6-py2.6.egg',
'/www/webapp/visimes/eggs/coverage-3.4-py2.6-freebsd-8.1-RELEASE-amd64.egg',
'/www/webapp/visimes/eggs/django_debug_toolbar-0.8.4-py2.6.egg',
'/www/webapp/visimes/eggs/django_extensions-0.6-py2.6.egg',
'/www/webapp/visimes/eggs/django_test_utils-0.3-py2.6.egg',
'/www/webapp/visimes/eggs/ipdb-0.3-py2.6.egg',
'/www/webapp/visimes/eggs/ipython-0.10.1-py2.6.egg',
'/www/webapp/visimes/eggs/djangorecipe-0.21-py2.6.egg',
'/www/webapp/visimes/eggs/zc.recipe.egg-1.3.2-py2.6.egg',
'/www/webapp/visimes/eggs/zc.buildout-1.5.2-py2.6.egg',
'/www/webapp/visimes/eggs/BeautifulSoup-3.2.0-py2.6.egg',
'/www/webapp/visimes/eggs/setuptools-0.6c12dev_r88795-py2.6.egg',
'/www/webapp/visimes/parts/django',
'/www/webapp/visimes',
'/www/webapp/visimes/project', # <-- this one need for monitor.py which i put in there
'/www/webapp/visimes/apps/portal', # <-- startapp.sh script some how forgot to add this dir, it's my default app dir, which must be generated with startapp.sh and added in here..
]
import djangorecipe.wsgi
if __name__ == '__main__':
djangorecipe.manage.main('project.development')
os.environ['DJANGO_SETTINGS_MODULE'] = 'project.development'
import monitor
monitor.start(interval=1.0)
import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()
나는 내 자신으로 마지막 4 줄을 추가했습니다. 왜냐하면 내가 아파치를 시작할 수 없기 때문이다. 나는 djangorecipe.wsgi가 staticFile 오버라이드로 다른 모든 것을 처리해야한다고 생각한다. 어쨌든 리눅스 나 맥을 사용한다면 그 패키지를 체크하고 자기가 시도해 보라. 작동해야 함
ps. (btw bin/django는 bin/django.wsgi로 공표해야하며 etc/apache.conf는 아파치 용 가상 호스트로 생성됩니다.)
누군가가 wsgi를 사용하여 수동으로이 "Starter"를 시작하려고한다면 정말 사과 할 것입니다. . 당신은 모든 것을 이해하는 것 =)
편집 :. 그는 장고 설정에서 기본 위치를 정적 파일을 따로 검색 할 필요가 WSGI이 이해할 수있는 방법에 대한 모든 정보는, 정말 감사합니다 =)
당신은/your/path/to /에있는 서버 정적 파일에 대한 아파치 설정 내 별명을 지정했습니다. 공전/? –
어떨까요? http://docs.djangoproject.com/en/dev/ref/contrib/staticfiles/#django-admin-collectstatic 어떻게 작동합니까? 그것은 여러 위치에서 정적 파일을 수집 할 수 있습니까? – holms
다시 정적 파일을 호스팅하는 위치를 가리키는 Apache 구성에 별칭을 추가하면 Apache (또는 다른 웹 서버) 만 정적 파일을 제공 할 수 있습니다. 예, collectstatic 명령을 사용하여 모든 정적 파일을 한 위치에 수집해야합니다 (편의를 위해 또는 다른 위치에 많은 별명을 설정하지 않으려는 경우). staticfiles 응용 프로그램은 주로 collectstatic과 같은 작업을하지 않거나 서버 구성에 별칭을 추가하지 않고도 로컬 dev 서버에서 개발할 수 있도록 도와줍니다. 프로덕션 환경에서 유일한 용도는 템플릿에 STATIC_URL을 (를) 사용하는 것입니다. –