콘텐츠로 이동

정적 파일

Starlette에는 지정된 디렉토리에서 파일 서비스를 제공하기 위한 StaticFiles 클래스도 포함되어 있습니다.

정적 파일

서명: StaticFiles(directory=None, packages=None, html=False, check_dir=True, follow_symlink=False)

  • directory 문자열 또는 os. 경로 디렉토리 경로를 나타내는 것과 같습니다.
  • packages 파이썬 패키지의 문자열 또는 문자열 튜플 목록입니다.
  • html- HTML 모드에서 실행됩니다. 이러한 파일이 있으면 index.html 가 디렉토리에 대해 자동으로 로드됩니다.
  • check_dir - Instantiated 시 디렉토리가 존재하는지 확인합니다. 기본값은 True ...
  • follow_symlink- 파일 및 디렉토리에 대한 심볼 링크를 따라야 하는지 여부를 나타내는 부울 값입니다. 기본값은 False 입니다.

이 ASGI 애플리케이션을 Starlette의 라우팅과 결합하여 포괄적인 정적 파일 서비스를 제공할 수 있습니다.

Starlette. 응용 프로그램이 Starlette에서 가져옵니다.
별자리에서. 라우팅 가져오기 마운트
Starlette.static에서 Static 가져오기


경로 = [
    ...
    마운트('/정적', 앱 = 정적 파일(디렉토리 = '정적'), 이름 = "정적"),
]

앱=스타렛(루트=루트)

일치하지 않는 요청의 경우 정적 파일이 "404를 찾을 수 없음" 또는 "405 메서드가 허용되지 않음"으로 응답합니다. HTML 모드에서 404.html 파일이 있으면 404 응답으로 표시됩니다.

packages 파이썬 패키지 내에 "정적" 디렉토리를 포함하는 데 옵션을 사용할 수 있습니다. 파이썬의 "bootstrap4" 패키지가 그러한 예 중 하나입니다.

Starlette. 응용 프로그램이 Starlette에서 가져옵니다.
별자리에서. 라우팅 가져오기 마운트
Starlette.static에서 Static 가져오기


경로 = [
    ...
    마운트('/정적', 앱 = Static(디렉토리 = '정적', 패키지 = ['bootstrap4']), 이름 = "정적"),
]

앱=스타렛(루트=루트)

기본적으로 StaticFiles 는 각 패키지에서 statics 디렉토리를 찾고 문자열 튜플을 지정하여 기본 디렉토리를 변경할 수 있습니다.

경로 = [
    ...
    마운트('/정적', 앱 = 정적 파일(패키지 = [('bootstrap4', '정적')], 이름 = "정적"),
]

정적 파일을 포함하기 위해 파이썬 패키징을 사용하는 것보다 정적 파일을 "정적" 디렉토리에 직접 포함하는 것을 선호할 수 있지만 재사용 가능한 구성 요소를 번들링하는 데 유용할 수 있습니다.