복붙노트

[PYTHON] 장고 : CSS가 작동하지 않습니다.

PYTHON

장고 : CSS가 작동하지 않습니다.

나는 아직 장고에 익숙하지 않고 CSS 작업에 문제가있다. Django 정적 링크 튜토리얼, 정적 파일 처리에 관한 링크의 지시를 따랐습니다. 하지만 여전히 작동하지 않습니다.

# Absolute path to the directory static files should be collected to.
# Don't put anything in this directory yourself; store your static files
# in apps' "static/" subdirectories and in STATICFILES_DIRS.
# Example: "/home/media/media.lawrence.com/static/"
STATIC_ROOT = '/Users/a9austin/Development/sites/AlphaSocks/src/static_root/'

# URL prefix for static files.
# Example: "http://media.lawrence.com/static/"
STATIC_URL = '/static/'

# Additional locations of static files
STATICFILES_DIRS = (
# Put strings here, like "/home/html/static" or "C:/www/django/static".
# Always use forward slashes, even on Windows.
# Don't forget to use absolute paths, not relative paths.
'/Users/a9austin/Development/sites/AlphaSocks/src/staticfiles'

)
#from django.http import HttpResponse
from django.shortcuts import render_to_response


def index(request):
return render_to_response('index.html')

<link rel="stylesheet" href="{{STATIC_URL}}css/style.css" type="text/css" media="screen" >

디렉토리 구성

정말 고마워요, 당신의 도움과 시간이 많이 감사합니다!

해결법

  1. ==============================

    1.Django가 정적 파일을 제공하려면 몇 가지 설정이 있는지 확인해야합니다.

    Django가 정적 파일을 제공하려면 몇 가지 설정이 있는지 확인해야합니다.

    STATIC_URL

    이 설정은 정적 파일을 아래에 매핑 할 URL을 지정합니다. 이미 완료 했어.

    STATICFILES_DIRS

    Django가 정적 파일을 검색해야하는 시스템의 모든 폴더를 지정합니다. 아이디어는 프로젝트 내에 두 개의 앱이있을 수 있으며 각 앱마다 다른 정적 파일 세트가 필요할 수 있다는 것입니다. 따라서 조직적인 목적을 위해 각 앱에는 정적 파일 만 저장되는 정적 디렉토리가 포함될 수 있습니다. 그래서 장고는 디렉토리가 어디에 있는지 알 수있는 방법이 있어야합니다. 이것이 바로이 설정입니다.

    STATIC_ROOT

    이 설정은 Django가 모든 정적 파일을 어디에 복사 할지를 지정합니다. 아이디어는 일단 개발 환경을 개발 환경으로 남겨두면 Django는 여기에 가지 않을 문제로 인해 정적 파일을 더 이상 제공 할 수 없다는 것입니다 (기사에 있습니다). 그러나 프로덕션의 경우 모든 정적 파일은 STATICFILES_DIRS에 지정된 것과 달리 단일 디렉토리에 있어야합니다. 따라서이 설정은 Django가 다음의 명령을 실행하여 STATICFILES_DIRS 내의 모든 파일로부터 모든 정적 파일을 복사 할 디렉토리를 지정합니다 :

    $ python manage.py collectstatic
    

    프로덕션 환경에 들어가면 필요하며 여기에 지정된 디렉토리는 STATICFILES_DIRS에 지정된 디렉토리와 같을 수 없습니다.

    Urls.py

    Django가 정적 파일을 제공하도록 개발할 때 urls.py에 정적 URL을 포함시켜야합니다.

    from django.contrib.staticfiles.urls import staticfiles_urlpatterns
    
    urlpatterns = ...
    
    urlpatterns += staticfiles_urlpatterns()
    

    일단 위의 모든 것을 완료하면 DEBUG = True 인 동안 정적 파일을 제공해야합니다. 위 목록에서 STATIC_URL 만 완료하는 것으로 보입니다. 또한 위에서 설명한 모든 단계는 질문에 링크 된 문서에 있습니다 (링크). 처음에는 약간 혼란 스러울 지 모르지만, 몇 번 읽으면 더 명확 해집니다.

  2. ==============================

    2.응답에 RequestContext를 추가하면 템플릿에 STATIC_URL 변수가로드됩니다.

    응답에 RequestContext를 추가하면 템플릿에 STATIC_URL 변수가로드됩니다.

    변경해보십시오.

    from django.shortcuts import render_to_response
    
    def index(request):
        return render_to_response('index.html')

    에:

    from django.shortcuts import render_to_response
    from django.template.context import RequestContext
    
    def index(request):
        return render_to_response("index.html", context_instance=RequestContext(request)) 

    자세한 내용은 템플릿의 정적 파일 참조에 관한 장고 문서를 참조하십시오.

  3. from https://stackoverflow.com/questions/13446325/django-css-is-not-not-working by cc-by-sa and MIT license