백엔드 개발 파이썬 튜토리얼 Django의 STATIC_ROOT, STATIC_URL 및 STATICFILES_DIRS에 대한 간략한 분석

Django의 STATIC_ROOT, STATIC_URL 및 STATICFILES_DIRS에 대한 간략한 분석

May 08, 2018 am 11:49 AM
django static

이 글에서는 Django의 STATIC_ROOT, STATIC_URL, STATICFILES_DIRS에 대한 관련 정보를 주로 샘플 코드를 통해 소개하고 있습니다. 공부나 업무에 필요한 참고 학습 가치가 있는 글입니다. 살펴보겠습니다

머리말

이 글은 주로 Django의 STATIC_ROOT, STATIC_URL, STATICFILES_DIRS 관련 내용을 소개하며, 참고 및 학습을 위해 공유합니다. 바의 자세한 소개를 살펴보겠습니다.

자세한 내용은 다음과 같습니다.

먼저 정적 파일을 구성하고 다음 코드 줄을 settings.py에 추가합니다.

settings.py

# the settings above
# STATIC SETTINGS
STATIC_URL = '/static/'
# BASE_DIR 是项目的绝对地址
STATIC_ROOT = os.path.join(BASE_DIR, 'collect_static')
#以下不是必须的
STATICFILES_DIRS = (
 os.path.join(BASE_DIR, 'common_static'),
)
로그인 후 복사

1.STATIC_ROOT

STATIC_ROOT는 정적 파일(pyhtonmanage.pycollectstatic)을 배포할 때 모든 정적 파일이 집계되는 디렉터리입니다. STATIC_ROOT는 절대 주소로 작성해야 합니다. 여기서 예를 들어 내 프로젝트 mysite는 /home/mysite/입니다. STATIC_ROOT는 /home/mysite /collect_static/입니다.

프로젝트를 배포할 때 터미널에 다음을 입력하세요.

python manage.py collectstatic
로그인 후 복사

django는 모든 정적 파일을 STATIC_ROOT 폴더

2에 복사합니다. _ROOT는 실제 상황에서는 정적 파일을 위한 두 가지 일반적인 배치 위치가 있습니다:

1. 하나는 각 앱에 새 정적 폴더를 만들고 그 안에 정적 파일을 넣는 것입니다. 예를 들어, 템플릿에서 정적 파일을 사용하려는 경우 Django는 자동으로 각 앱에서 정적 폴더를 검색합니다(따라서 폴더 이름을 잘못 쓰지 마세요. 그렇지 않으면 Django가 검색할 수 없습니다). 폴더를 찾으려면) 2. 또 다른 옵션은 모든 앱 파일 외부에 공용 폴더를 만드는 것입니다. 일부 정적 파일은 특정 앱에 고유하지 않기 때문에 쉽게 관리할 수 있도록 공용 폴더에 넣을 수 있습니다(참고, 공용 정적 파일 폴더는 관리하기 쉬운 방법이지만, 결국 모든 정적 파일은 STATIC_ROOT에 존재하기 때문에 앱은 여러 앱에 정적 파일을 적용할 수 있습니다.

이제 문제는 어떻게 하느냐입니다. django에게 앱 외부 공용 폴더에 일부 정적 파일을 저장한 다음 STATICFILES_DIRS

STATICFILES_DIRS = (
 os.path.join(BASE_DIR, 'common_static'),
)
로그인 후 복사

STATICFILES_DIRS를 구성해야 합니다. STATICFILES_DIRS는 django에게 먼저 STATICFILES_DIRS에서 정적 파일을 찾도록 지시한 다음 정적 폴더로 이동합니다. 각 앱과 검색(Django는 게으른 방식으로 정적 파일을 검색합니다. 첫 번째 파일을 찾으면 검색을 중지합니다.)

3.STATIC_URL

지금은 그게 다입니다. 정적 파일의 메커니즘은 다음과 같습니다. , 하지만 질문이 있습니다. URL을 통해 내 프로젝트의 정적 파일에 직접 액세스할 수 있습니까? 대답은 확실히 그렇습니다. 하지만 브라우저에서 액세스하고 있으므로 로컬 절대 파일을 입력할 수 없다는 점에 유의하세요. 예를 들어 내 사진 중 하나의 로컬 주소는 /home/mysite/common_static/myapp/photo.png

그러면 다른 사람이 브라우저에 직접 입력하는 것이 불가능합니다.

http:/ / 192.168.1.2:8000/home/mysite/common_static/myapp/photo.png


이런 식으로 브라우저는 오류를 보고하지만 그러한 페이지는 없습니다


그러면 Django는 어떻게 브라우저가 정적 파일에 액세스하도록 허용합니까? 앞서 언급했듯이 서버의 로컬 주소에 직접 액세스할 수 없으므로 Django는 STATIC_URL을 사용하여 브라우저가 다음과 같은 정적 파일에 직접 액세스할 수 있도록 합니다.


그런 다음 브라우저에서 사용할 수 있습니다. 입력:


http://192.168.1.2:8000/static/common_static/myapp/photo.png

그러면 /home/mysite/를 방문하는 것과 같습니다. common_static/myap/photo.png

탐색하는 동안 서버에서 STATIC_URL 접두어의 특정 내용을 사용하여 STATIC_ROOT를 매핑합니다.

HTTP://192.168.1.2:8000/static은 로컬 주소의 STATIC_ROOT

과 같습니다.

관련 권장 사항:

Django에서 Ajax를 사용하는 방법

새로 고침 후 Django의 양식 페이지가 자동으로 제출되지 않도록 하는 방법


위 내용은 Django의 STATIC_ROOT, STATIC_URL 및 STATICFILES_DIRS에 대한 간략한 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

django 버전 확인하는 방법 django 버전 확인하는 방법 Dec 01, 2023 pm 02:25 PM

Django 버전 확인 단계: 1. 터미널 또는 명령 프롬프트 창을 엽니다. 2. Django가 설치되어 있는지 확인합니다. Django가 설치되지 않은 경우 패키지 관리 도구를 사용하여 설치하고 pip install django 명령을 입력합니다. 설치가 완료된 후 python -m django --version을 사용하여 Django 버전을 확인할 수 있습니다.

Django와 Flask: Python 웹 프레임워크 비교 분석 Django와 Flask: Python 웹 프레임워크 비교 분석 Jan 19, 2024 am 08:36 AM

Django와 Flask는 모두 Python 웹 프레임워크의 리더이며 둘 다 고유한 장점과 적용 가능한 시나리오를 가지고 있습니다. 이 기사에서는 이 두 프레임워크를 비교 분석하고 구체적인 코드 예제를 제공합니다. 개발 소개 Django는 모든 기능을 갖춘 웹 프레임워크이며, 주요 목적은 복잡한 웹 애플리케이션을 신속하게 개발하는 것입니다. Django는 ORM(Object Relational Mapping), 양식, 인증, 관리 백엔드 등과 같은 다양한 내장 기능을 제공합니다. 이러한 기능을 통해 Django는 대규모 처리를 수행할 수 있습니다.

Django 프레임워크의 장점과 단점: 알아야 할 모든 것 Django 프레임워크의 장점과 단점: 알아야 할 모든 것 Jan 19, 2024 am 09:09 AM

Django는 웹 개발 라이프사이클의 모든 측면을 포괄하는 완전한 개발 프레임워크입니다. 현재 이 프레임워크는 전 세계적으로 가장 인기 있는 웹 프레임워크 중 하나입니다. Django를 사용하여 자신만의 웹 애플리케이션을 구축하려는 경우 Django 프레임워크의 장점과 단점을 이해해야 합니다. 특정 코드 예제를 포함하여 알아야 할 모든 것이 여기에 있습니다. Django의 장점: 1. 빠른 개발 - Djang은 웹 애플리케이션을 빠르게 개발할 수 있습니다. 풍부한 라이브러리와 내부 기능을 제공합니다.

django 버전 확인하는 방법 django 버전 확인하는 방법 Nov 30, 2023 pm 03:08 PM

django 버전 확인 방법: 1. 명령줄을 통해 확인하려면 터미널이나 명령줄 창에서 "python -m django --version" 명령을 입력하세요. 2. Python 대화형 환경에서 확인하려면 "import django"를 입력하세요. print(django.get_version())" code; 3. Django 프로젝트의 설정 파일을 확인하여 설치된 애플리케이션 정보가 포함된 INSTALLED_APPS 목록을 찾습니다.

Django 버전을 업그레이드하는 방법: 단계 및 고려 사항 Django 버전을 업그레이드하는 방법: 단계 및 고려 사항 Jan 19, 2024 am 10:16 AM

Django 버전 업그레이드 방법: 단계 및 고려 사항, 필요한 특정 코드 예제 소개: Django는 더 나은 성능과 더 많은 기능을 제공하기 위해 지속적으로 업데이트되고 업그레이드되는 강력한 Python 웹 프레임워크입니다. 그러나 이전 버전의 Django를 사용하는 개발자의 경우 Django를 업그레이드하는 데 몇 가지 어려움이 있을 수 있습니다. 이 글에서는 Django 버전을 업그레이드하는 방법에 대한 단계와 주의 사항을 소개하고 구체적인 코드 예제를 제공합니다. 1. Djan을 업그레이드하기 전에 프로젝트 파일을 백업하세요.

django 버전의 차이점은 무엇입니까? django 버전의 차이점은 무엇입니까? Nov 20, 2023 pm 04:33 PM

차이점은 다음과 같습니다. 1. Django 1.x 시리즈: 이는 버전 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8 및 1.9를 포함하는 Django의 초기 버전입니다. 이 버전은 주로 기본적인 웹 개발 기능을 제공합니다. 2. Django 2.x 시리즈: 2.0, 2.1, 2.2 및 기타 버전을 포함한 Django의 중기 버전입니다. 3. Django 3.x 시리즈: 최신 버전입니다. 버전 3.0, 3 등을 포함하는 Django 시리즈.

django는 프론트엔드인가요, 백엔드인가요? django는 프론트엔드인가요, 백엔드인가요? Nov 21, 2023 pm 02:36 PM

django는 백엔드입니다. 세부사항: Django는 기본적으로 백엔드 프레임워크이지만 프런트엔드 개발과 밀접한 관련이 있습니다. Django의 템플릿 엔진, 정적 파일 관리, RESTful API와 같은 기능을 통해 프런트엔드 개발자는 백엔드 개발자와 협력하여 강력하고 확장 가능한 웹 애플리케이션을 구축할 수 있습니다.

Django, Flask, FastAPI: 초보자에게 적합한 프레임워크는 무엇인가요? Django, Flask, FastAPI: 초보자에게 적합한 프레임워크는 무엇인가요? Sep 27, 2023 pm 09:06 PM

Django, Flask, FastAPI: 초보자에게 적합한 프레임워크는 무엇인가요? 소개: 웹 애플리케이션 개발 분야에는 선택할 수 있는 우수한 Python 프레임워크가 많이 있습니다. 이 기사에서는 가장 널리 사용되는 세 가지 프레임워크인 Django, Flask 및 FastAPI에 중점을 둘 것입니다. 우리는 그들의 기능을 평가하고 초보자가 사용하기에 가장 적합한 프레임워크에 대해 논의할 것입니다. 동시에 초보자가 이러한 프레임워크를 더 잘 이해할 수 있도록 몇 가지 구체적인 코드 예제도 제공할 것입니다. 1. 장고: 장고

See all articles