소위 정적 리소스는 사진, js, CSS 등과 같은 파일을 의미합니다. 공식적인 지침은 여기에 있습니다.
설명하기 위해 작은 프로젝트를 예로 들어 보겠습니다. 다음은 프로젝트의 디렉터리 구조입니다.
. ├── static │ ├── css │ │ ├── base.css │ │ ├── bootstrap.min.css │ │ └── font-awesome.min.css │ ├── font │ │ ├── FontAwesome.otf │ │ ├── fontawesome-webfont.eot │ │ ├── fontawesome-webfont.svg │ │ ├── fontawesome-webfont.ttf │ │ └── fontawesome-webfont.woff │ └── index.html └── proxy_server.py
는 두 개의 정적 파일 디렉터리 proxy_server.py
및 static/css
에 static/font
를 추가합니다. >경로 :
app.router.add_static('/css/', path='static/css', name='css') app.router.add_static('/font/', path='static/font', name='font')
먼저 add_static
메서드의 정의를 살펴보겠습니다.
def add_static(self, prefix, path, *, name=None, expect_handler=None, chunk_size=256*1024, response_factory=StreamResponse, show_index=False, follow_symlinks=False): """Add static files view. prefix - url prefix path - folder with files """ # TODO: implement via PrefixedResource, not ResourceAdapter assert prefix.startswith('/') if prefix.endswith('/'): prefix = prefix[:-1] resource = StaticResource(prefix, path, name=name, expect_handler=expect_handler, chunk_size=chunk_size, response_factory=response_factory, show_index=show_index, follow_symlinks=follow_symlinks) self.register_resource(resource) return resource
필수 매개변수 2개: prefix
: It url
로 시작하는 정적 파일 /
접두사는 웹사이트 호스트 뒤의 브라우저 주소 표시줄에 표시되며 index.html
을 참조하기 위해
정적 페이지에도 사용됩니다. 정적 파일 디렉터리 경로는 상대 경로일 수 있습니다. 위 코드에 사용된 path
는 static/css
이 있는 경로에 대한 상대 경로입니다. proxy_server.py
페이지의 효과는 다음과 같습니다.
은
을 로드하고, 다음은 정적 리소스를 참조하는 코드입니다. index.html
<!-- Bootstrap CSS --> <link href="css/bootstrap.min.css" rel="stylesheet"> <!-- Base CSS --> <link href="css/base.css" rel="stylesheet"> <!-- FA CSS --> <link href="css/font-awesome.min.css" rel="stylesheet">
사용해야 할 항목: font
/font-awesome.min.css
브라우저에서 CSS 파일을 엽니다.
URL의 접두사가 인 것을 볼 수 있습니다.
접두사를 수정하면 /css/
app.router.add_static('/css2017/', path='static/css', name='css')
css 파일도 액세스할 수 없습니다.
에서 수정 참조 CSS 경로:
<!-- Bootstrap CSS --> <link href="css2017/bootstrap.min.css" rel="stylesheet"> <!-- Base CSS --> <link href="css2017/base.css" rel="stylesheet"> <!-- FA CSS --> <link href="css2017/font-awesome.min.css" rel="stylesheet">
index.html
디렉터리 자체는 여전히 이지만 부터 css
까지로 간주되어 페이지가 정상으로 돌아옵니다: add_static
css2017
CSS 파일을 열 수도 있습니다:
URL 접두사가 으로 변경되었습니다.
이때 /css2017/
파일을 직접 열면
디렉토리에 index.html
폴더가 없기 때문에
로 표시됩니다. static
css2017
이제
메서드의 기본 사용법을 이해했습니다. 또한 add_static
매개변수를 재정의하여 서버에서 정적 리소스가 저장되는 실제 디렉터리를 숨길 수도 있고 분산할 수도 있습니다. 모든 리소스 파일은 동일한 경로 접두사로 통합됩니다. 또한 prefix
을 추가하면 정적 리소스의
디렉터리를 표시할 수 있습니다. 기본적으로 액세스는 금지되어 있습니다. show_index=True
app.router.add_static('/css2017/', path='static/css', name='css', show_index=True)
위 내용은 aiohttp의 정적 리소스 경로 추가 방법 정보의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!