- Static File (정적 파일)
미리 서버에 저장되어 있는 파일
서버에 저장된 그대로를 서비스해주는 파일
- Dynamic File (동적 파일)
서버의 데이터들이 어느정도 가공된 다음 서비스되는 파일
- 프로젝트 입장에서 이미 무엇인지 아는 파일
- 개발할 때 미리 준비해둔 파일 = "static"
- 웹 서비스 이용자들이 업로드하는 파일
- "media"
- Static 파일의 위치 찾기
- Static 파일을 한 곳에 모으기
우리가 해야할 것
- Static 파일들을 담을 폴더 만들기
- (App폴더 내부에) Static 폴더 생성 및 파일 저장
- Static 파일의 위치 알려주기
settings.py
에서 알려주기
- Static 파일을 모으기
$ python manage.py collectstatic
(명령어)
portfolio
앱 생성
$ python manage.py startapp portfolio
settings.py
에 App 추가
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'blogapp.apps.BlogappConfig',
'portfolio.apps.PortfolioConfig',
]
templates
폴더 생성 및portfolio.html
생성views.py
에portfolio
함수 정의
def portfolio(request):
return render(request, "portfolio.html")
portfolio
의views.py
import 및urls.py
에path
추가
import portfolio.views
...
urlpatterns = [
path('admin/', admin.site.urls),
path('', blogapp.views.home, name="home"),
path('blog/<int:blog_id>', blogapp.views.detail, name="detail"),
path('blog/new', blogapp.views.new, name="new"),
path('blog/create', blogapp.views.create, name="create"),
path('portfolio', portfolio.views.portfolio, name="portfolio"),
]
- Portfolio 관련된
a
태그에 템플릿 태그로url
생성
<a class="dropdown-item" href="{% url 'portfolio' %}">Portfolio</a>
STATICFILES_DIRS
은 static
파일이 어디 있는지 알려주는 변수
STATIC_ROOT
은 static
파일들이 어디로 모일 것인지 알려주는 변수
STATIC_URL = '/static/'
STATICFILES_DIRS = [
os.path.join(BASE_DIR, 'portfolio', 'static')
]
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
$ python manage.py collectstatic
portfolio.html
최상단에 아래 코드 추가
{% load staticfiles %}
img
태그에 이미지 경로 추가
<a href="#"><img class="card-img-top" src="{% static 'first_logo.png' %}" alt=""></a>