답변
Django는 자체적으로 정적 파일을 제공하지 않습니다. 파일이 어디에 있는지 알려 주어야합니다.
settings.py 의 ADMIN_MEDIA_PREFIX는 Django를 올바른 위치로 가리 킵니다.
개발 버전을 사용하고 있으므로 정적 파일 방법에 대한 개발 별 문서가 필요합니다 . Adam의 링크는 1.2 버전으로 연결됩니다.
답변
STATIC_ROOT
및을 설정 한 후 STATIC_URL
다음을 실행해야 할 수 있습니다.
python manage.py collectstatic
답변
ADMIN_MEDIA_PREFIX
지금은 더 이상 사용되지 않으므로 STATIC_URL
대신 사용하십시오. 설정 STATIC_URL = '/static/'
settings.py에서하는 일을해야한다. 시험:
import os.path import sys
PROJECT_ROOT = os.path.normpath(os.path.dirname(__file__))
그리고:
STATIC_ROOT = os.path.join(PROJECT_ROOT, 'static')
STATIC_URL = '/static/'
Django 1.4 pre-alpha SVN-16920에서 작동합니다.
답변
Django Book Tutorial에 따라이 문제에 직면했습니다. 5 장 | 모델 설치에서 책은 기본 INSTALLED_APPS를 참조 할 때 “해시 문자 (#)를 앞에 넣어 일시적으로 6 개의 문자열을 모두 주석 처리합니다.”라고 말합니다.
http://www.djangobook.com/en/2.0/chapter05.html
그런 다음 6 장에서이 책은 독자에게 6 개 행 중 4 개를 주석 해제하도록 지시합니다. “5 장에서이 4 개의 INSTALLED_APPS 항목을 주석 처리했습니다. 지금 주석을 제거하십시오.”
그러나 statcifiles 줄은 CSS를 관리 페이지로 복원하는 데 필요한 것이므로 ‘django.contrib.staticfiles’의 주석 처리를 제거하십시오.
답변
나는 이것을 고치려고 여러 다른 스레드를 읽었습니다 … 다른 스레드와 마찬가지로 별칭으로 정렬되었습니다. 이는 사용자 정의 앱이 정적 파일을 올바르게 제공하고 있다고 가정합니다. 이는 STATIC_ROOT 및 STATIC_URL에 적절한 설정이 있음을 나타냅니다.
STATIC_ROOT = ''
STATIC_URL = '/static/'
그런 다음 (정적 디렉토리에서) :
ubuntu@ip-1-2-3-4:/srv/www/mysite.com/app_folder/static$ sudo ln -s /usr/local/lib/python2.7/dist-packages/django/contrib/admin/static/admin/ admin
이것이 누군가에게 도움이되기를 바랍니다 …이 주제에 대한 많은 스레드가 있습니다. 🙁
답변
에서 정적 파일에 사용할 URL을 사이트에 알리 /project_name/project_name/settings.py
도록 설정해야 STATIC_URL
합니다.
그런 다음 목록에 STATIC_ROOT
나열된 디렉토리와 동일하지 않은 파일 시스템의 일부 폴더로 설정하십시오 STATICFILES_DIRS
.
STATICFILES_ROOT
가 설정 되면 python manage.py collectstatic
프로젝트 디렉토리에서 실행 합니다.
그러면 STATICFILES_DIRS
목록에 나열된 다른 폴더의 모든 관리자 정적 파일과 모든 파일이 복사 됩니다. 기본적으로 이것은 모든 정적 파일을 한 곳에 배치하므로 사이트를 배포 할 때 CDN으로 이동할 수 있습니다. 나와 같고 CDN이없는 경우 두 가지 옵션이 있습니다.
- 당신이로 설정 한 폴더 추가
STATIC_ROOT
받는 사람STATICFILES_DIRS
목록을. 이렇게하면 django의 staticfiles 파인더가 모든 정적 파일을 찾을 수 있습니다. - 정적 파일의 전체 폴더를 파일 시스템의 다른
STATICFILES_DIRS
위치로 이동하고 새 위치를 포함하도록 지시하십시오 .
나는이 대답으로 보안에 대해 언급하지 않습니다. 작은 프로젝트를 위해 웹 서버로 개발할 수 있었던 방법입니다. 나는 당신이 더 큰 규모의 일을하고 있다면 django가 제안한 것처럼 CDN을 원할 것이라고 기대합니다.
업데이트 : 방금이 문제가 발생 했으며이 방법은 내가 원하는 것을 제대로 수행하지 못했습니다. 결국 나를 위해 일하게 된 것은 내가 실행 한 후 내 정적 파일에 사용했던 디렉토리에 collectstatic
넣은 관리자 정적 파일을 복사했습니다 STATICFILES_ROOT
. 그것은 나를 위해 문제를 해결했습니다.
답변
다른 많은 답변이 유용 할뿐만 아니라 아직 언급되지 않은 문제가있었습니다. Django 1.3에서 1.6으로 업그레이드 한 후 정적 파일 디렉토리에 django 관리자 정적 파일에 대한 심볼릭 링크가 끊어졌습니다.
내 settings.py는 다음과 같이 구성되었습니다.
STATICFILES_DIRS = (
'/var/www/static/my-dev',
)
이 답변 에 따르면 ,
Django는 이제 URL / admin /에서 관리자 정적 파일을 찾을 것으로 예상합니다.
/var/www/static/my-dev/admin
다음과 같이 설정된 심볼릭 링크 가 있습니다.
admin -> /usr/local/lib/python2.7/dist-packages/django/contrib/admin/media/
해당 위치는 더 이상 django 1.6에 존재하지 않으므로 링크를 다음으로 업데이트했습니다.
admin -> /usr/local/lib/python2.7/dist-packages/django/contrib/admin/static/admin/
이제 내 관리 사이트가 제대로 작동합니다.