웹사이트에서 사용하는 이미지, CSS, js 파일 등과 같은 정적 파일은 동적 웹사이트에도 필요합니다. 이러한 정적 파일을 어떻게 관리하고 사용합니까? 먼저 상위 레이어 mysite 아래에 두 개의 폴더 static를 추가합니다. assets 폴더는 개발 중에 정적 파일을 저장하는 데 사용되는 디렉터리로 이 디렉터리 아래에 여러 하위 디렉터리를 추가하여 다양한 파일을 저장할 수 있습니다. static을 설정하여 이미지를 배치하거나 img을 설정하여 CSS 파일을 배치하는 등 정적 파일 유형. 그리고 css은 웹사이트가 실제로 온라인 상태일 때 정적 파일이 배치되는 디렉터리입니다. 이 두 디렉터리를 분리한 이유는 온라인 상태일 때 정적 파일 관리를 웹 서버에 넘겨줘야 하기 때문입니다. assets
다음으로
로 이동하여 설정해 보겠습니다. settings.py
으아악
여기에서는 총 3개의 매개변수가 설정됩니다. 자세한 설명은 다음과 같습니다.
매개변수
설명
STATIC_URL
정적 파일의 URL 패턴입니다. 여기서는 /static/으로 설정한 다음 /static/으로 시작하는 웹페이지 경로가 고려됩니다. http://127.0.0.1/static/hello.png, http://127.0.0.1/static/hi.js와 같은 정적 파일로, 그러나 http://127.0.0.1/restaurants/static/인 경우 정적 파일 대신 urls.py의 경로와 일치합니다
STATICFILES_DIRS
개발 중에 정적 파일이 배치되는 폴더입니다. 정적 파일의 위치를 나타내기 위해 여러 폴더를 설정할 수 있습니다. 위에서 설정한 대로 BASE_DIR로 표시된 폴더 아래에 폴더를 추가하고 그 안에 이미지 파일, CSS, js를 넣을 수 있습니다
STATIC_ROOT
온라인에 접속할 때 정적 파일이 저장되는 폴더입니다. pythonmanage.pycollectstatic을 사용하면 Django는 STAIC_DIRS 아래에 있는 정적 파일을 STATIC_ROOT에 복사합니다. 구성 파일의 DEBUG가 False로 설정되면 Django는 기본적으로 정적 파일 반환을 처리하지 않기 때문에 이러한 파일은 다음 명령을 통해 폴더에 수집됩니다. 웹 서버 관리 및 읽기 용이
위 매개변수를 설정한 후 템플릿의 STATICFILES_DIRS 폴더에 있는 정적 파일을 사용할 수 있습니다. 웹사이트가 페이지에 그림 logo.png(mysite/static/img/logo.png에 추가)을 추가하려고 한다고 가정하면 템플릿에 다음과 같이 작성합니다.
으아악
완료되었습니다. 그런데 어느 날 강제로 정적 파일의 웹 페이지 경로를 /static_file/으로 변경하게 된다면, 경로를 찾아서 템플릿 하나씩 수정해야 하는 게 힘들지 않나요? "Django"와의 비교는 다음과 같습니다.
으아악
템플릿에 staticfiles를 먼저 로드한 후 {% static ...%} 태그를 사용하세요. 위의 조정 후 Django는 정적 파일 처리 시 {% static 'img/logo.png' %} 를 '/static/img/logo.png'로 변환하며, 정적 파일의 경로를 수정해야 할 경우 settings.py 파일의 STATIC_URL을 안전하고 과감하게 수정할 수 있습니다. 많은 수의 템플릿을 수정하는 것에 대해 걱정할 필요가 없습니다.
다음은 제가 이전에 쓴 책에서 발췌한 것입니다: It's Django
정적 파일 사용
웹사이트에서 사용하는 이미지, CSS, js 파일 등과 같은 정적 파일은 동적 웹사이트에도 필요합니다. 이러한 정적 파일을 어떻게 관리하고 사용합니까? 먼저 상위 레이어
다음으로mysite
아래에 두 개의 폴더static
를 추가합니다.assets
폴더는 개발 중에 정적 파일을 저장하는 데 사용되는 디렉터리로 이 디렉터리 아래에 여러 하위 디렉터리를 추가하여 다양한 파일을 저장할 수 있습니다.static
을 설정하여 이미지를 배치하거나img
을 설정하여 CSS 파일을 배치하는 등 정적 파일 유형. 그리고css
은 웹사이트가 실제로 온라인 상태일 때 정적 파일이 배치되는 디렉터리입니다. 이 두 디렉터리를 분리한 이유는 온라인 상태일 때 정적 파일 관리를 웹 서버에 넘겨줘야 하기 때문입니다.assets
로 이동하여 설정해 보겠습니다.
여기에서는 총 3개의 매개변수가 설정됩니다. 자세한 설명은 다음과 같습니다.settings.py
으아악/static/
으로 설정한 다음/static/
으로 시작하는 웹페이지 경로가 고려됩니다. http://127.0.0.1/static/hello.png, http://127.0.0.1/static/hi.js와 같은 정적 파일로, 그러나 http://127.0.0.1/restaurants/static/인 경우 정적 파일 대신urls.py
의 경로와 일치합니다BASE_DIR
로 표시된 폴더 아래에 폴더를 추가하고 그 안에 이미지 파일, CSS, js를 넣을 수 있습니다pythonmanage.pycollectstatic
을 사용하면 Django는STAIC_DIRS
아래에 있는 정적 파일을STATIC_ROOT
에 복사합니다. 구성 파일의DEBUG
가False
로 설정되면 Django는 기본적으로 정적 파일 반환을 처리하지 않기 때문에 이러한 파일은 다음 명령을 통해 폴더에 수집됩니다. 웹 서버 관리 및 읽기 용이위 매개변수를 설정한 후 템플릿의
으아악STATICFILES_DIRS
폴더에 있는 정적 파일을 사용할 수 있습니다. 웹사이트가 페이지에 그림logo.png
(mysite/static/img/logo.png
에 추가)을 추가하려고 한다고 가정하면 템플릿에 다음과 같이 작성합니다.완료되었습니다. 그런데 어느 날 강제로 정적 파일의 웹 페이지 경로를
으아악/static_file/
으로 변경하게 된다면, 경로를 찾아서 템플릿 하나씩 수정해야 하는 게 힘들지 않나요? "Django"와의 비교는 다음과 같습니다.템플릿에
staticfiles
를 먼저 로드한 후{% static ...%}
태그를 사용하세요. 위의 조정 후 Django는 정적 파일 처리 시{% static 'img/logo.png' %}
를'/static/img/logo.png'
로 변환하며, 정적 파일의 경로를 수정해야 할 경우settings.py
파일의STATIC_URL
을 안전하고 과감하게 수정할 수 있습니다. 많은 수의 템플릿을 수정하는 것에 대해 걱정할 필요가 없습니다.내가 답변한 질문: Python-QA
View에 해당하는 URL을 참고하시면 이 문서를 보실 수 있습니다
https://docs.djangoproject.com/en/1.9/intro/tutorial03/#removing-hardcoded-urls-in-templates
js, CSS와 같은 정적 파일을 참조하는 경우 Django 구성 https://docs.djangoproject.com/en/에서 STATIC_URL
을 변경하여 이를 수행할 수 있습니다. 1.9/howto /static-files/
.NET에 아웃바운드 urlrewrite가 있습니다
혼란스러울 것 같습니다
간단히 말하면 html 출력 앞에 필터를 추가하세요.
/로 시작하는 모든 링크 주소를 바꾸세요
Apache는 .htaccess 파일을 사용하여 액세스된 주소를 다시 쓸 수 있는 것으로 보입니다. 이는 일반적인 규칙입니다