>  기사  >  웹 프론트엔드  >  Django가 CSS 파일을 수정했는데 적용되지 않으면 어떻게 해야 하나요?

Django가 CSS 파일을 수정했는데 적용되지 않으면 어떻게 해야 하나요?

醉折花枝作酒筹
醉折花枝作酒筹원래의
2021-05-18 17:11:254536검색

해결책: 1. "settings.py" 파일에서 "STATIC_URL" 및 "STATIC_ROOT"를 올바르게 구성합니다. 2. "python prepare.pycollectstatic" 명령을 실행합니다. 3. gunicorn과 nginx를 다시 시작합니다.

이 튜토리얼의 운영 환경: Windows7 시스템, CSS3&&HTML5 버전, Dell G3 컴퓨터.

Django를 서버에 배포한 후 로컬 측 웹 사이트의 모든 수정 사항은 서버 측에서 동기화되어야 합니다. 이 글을 쓰기 전에는 단지 소스 코드를 동기화하는 문제라고 생각했습니다. 오늘의 문제.

main.css 파일을 수정한 후 git을 통해 웹사이트를 동기화했더니 코드가 서버에 성공적으로 동기화되었습니다. 그런데 그냥 정상적으로 표시가 안되네요.. 검색해서 CSS 등 정적 파일을 수정하는 올바른 방법을 찾았습니다...

1. 구성 파일

우선 설정을 확인해야 합니다. 프로젝트 아래의 .py 파일이 STATIC_URL 및 STATIC_ROOT로 올바르게 구성되었습니다.

STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR,'static/')

따옴표 안의 "/"에 주의하세요. /"가 하나 더 많거나 적으면 수정 사항이 적용되지 않습니다. 취소했습니다. 그렇다면 이 두 가지 매개변수는 구체적으로 무엇을 의미하나요?

STATIC_ROOT는 Django가 배포될 때만 사용되는 절대 주소입니다. 해당 폴더는 프로젝트의 여러 위치에서 수집된 정적 파일을 저장합니다. , Django에는 여러 개의 APP가 있을 수 있으므로 각 APP에는 자체 정적 파일이 있을 수 있습니다. 각 APP의 정적 파일은 nginx에서 통합 사용하기 위해 함께 수집됩니다.

STATIC_URL의 기능은 브라우저가 매핑 역할을 하는 정적 파일에 액세스할 수 있도록 하는 것입니다. 기본 설정은 "/static/"입니다.

2. CSS 파일이 로컬로 동기화된 후. 서버에서는 해당 APP 하위의 static 폴더에만 동기화되는데, nginx 등은 사용자가 설정한 STATIC_ROOT 폴더에 있는 파일을 호출하기 때문에 코드 동기화 후 매우 중요한 작업을 수행해야 합니다.

python manage.py collectstatic

이 코드를 실행한 후, 방금 수정한 main.css 파일은 웹사이트 루트 디렉터리의 정적 파일에 수집되어 nginx가 호출될 때까지 기다립니다.

3. 서비스를 다시 시작하세요

처음 두 단계를 완료한 후 다음 작업도 수행해야 합니다. gunicorn과 nginx를 다시 시작했지만 다시 시작하지 않고도 적용되었습니다.

# 查看gunicorn进程ID
pstree -ap | grep gunicorn

# 重启进程
kill -HUP ID

권장 학습:

css 비디오 튜토리얼

위 내용은 Django가 CSS 파일을 수정했는데 적용되지 않으면 어떻게 해야 하나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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