[css] 내 장고 관리 사이트에 CSS 스타일이없는 이유

Django 개발 버전을 사용하여 Django 관리 사이트를 만듭니다.

그러나 CSS 스타일이 없습니다.

대체 텍스트

어떡해?

감사



답변

Django는 자체적으로 정적 파일을 제공하지 않습니다. 파일이 어디에 있는지 알려 주어야합니다.

settings.pyADMIN_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이없는 경우 두 가지 옵션이 있습니다.

  1. 당신이로 설정 한 폴더 추가 STATIC_ROOT받는 사람 STATICFILES_DIRS목록을. 이렇게하면 django의 staticfiles 파인더가 모든 정적 파일을 찾을 수 있습니다.
  2. 정적 파일의 전체 폴더를 파일 시스템의 다른 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/

이제 내 관리 사이트가 제대로 작동합니다.