파파비의 블로그

[python / 파이썬] Django Adding Static Files 본문

개발/django

[python / 파이썬] Django Adding Static Files

N. Dave 2021. 6. 6. 22:17
반응형

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를 넣어주어야 한다

 

반응형
Comments