파파비의 블로그
[python / 파이썬] Django Adding Static Files 본문
Static file?
> 내용이 dynamic하게 변하지 않는 부분
> css파일, image file 등을 의미
> view, html 등은 dynamic한 요소들이 있어 static이 아님
이런 파일들을 사용하기 위한 방법은
1) 일단 어디에 저장해두어야할까?
> app 수준이라면, app 폴더 내 static > app 이름 폴더 안에 파일 저장
> template 저장 처럼, 폴더 안에 앱이름 폴더를 또 만드는 관례를 따른다. static이라는 폴더로 명명해야한다.
2) Setting를 확인한다.
> INSTALLED_APPS 안에 'django.contrib.staticfiles' 이 포함되어 있어야 한다. 디폴트로 되어 있다. (따로할건 없다)
3) 코드로 사용한다.
1. app 수준의 css파일 넣기
> css 파일을 만들고 html에 연결시키는 Linking Style Sheet의 방식입니다.
> <link rel="stylesheet" href="<css 파일명>"> 을 html 파일에 넣어주면 됩니다.
먼저 템플릿에 이렇게 css_file block을 만들어 css가 들어갈 위치를 결정해주고,
코드를 작성해서 넣어주면 됩니다.
넣어줄 때
point1) load tag를 활용하여 static plugin을 가져오기
point2) href= 부분에 css파일을 연결시켜야하는데, 이때 static tag를 통해 연결하기(static tag를 사용하기 위해선, static plugin을 load해야 가능함)
2. project 수준의 css파일 사용하기
- app 수준과 거의 유사함 // 원리도 template과 거의 유사함
point1) project 수준에서 static 폴더를 만들고 그 안에 css 파일을 만든다. 파일은 간단하게 폰트를 바꾸는 것으로 해두었다.
>구글폰트에서 @import 부분과 CSS rules to specify families 부분을 복사하여 넣음
코드를 적용하는 방법은 동일하게
1) load tag를 통해 static을 가져오고
2) 원하는 HTML부분에 <link rel ="stylesheet" href="<static tag + css_file_name>"> 으로 넣어준다.
3) 여기가 차이점이다. static폴더에 대해 app 수준에서만 자동으로하고 project level에서 검색하게 하기 위해선
template처럼 dir을 지정해주어야 한다.
그러기 위해선 setting에 들어가 STATICFILES_DIRS 속성을 추가로 직접 만들고, 안에 path를 넣어주어야 한다
'개발 > django' 카테고리의 다른 글
[python/파이썬] Cross Model Queries (0) | 2021.06.19 |
---|---|
[python / 파이썬] Django Query Performance (0) | 2021.06.08 |
[python / 파이썬] Django 404 error Templates (0) | 2021.06.06 |
[python / 파이썬] Django Templates Partial Snippets (0) | 2021.06.06 |
[python / 파이썬] Django Templates Inheritance (0) | 2021.06.06 |