>  기사  >  백엔드 개발  >  aiohttp의 정적 리소스 경로 추가 방법 정보

aiohttp의 정적 리소스 경로 추가 방법 정보

高洛峰
高洛峰원래의
2017-03-15 13:32:122395검색

소위 정적 리소스는 사진, 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.pystatic/cssstatic/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을 참조하기 위해
정적 페이지에도 사용됩니다. 정적 파일 디렉터리 경로는 상대 경로일 수 있습니다. 위 코드에 사용된 pathstatic/css이 있는 경로에 대한 상대 경로입니다. proxy_server.py페이지의 효과는 다음과 같습니다.

aiohttp의 정적 리소스 경로 추가 방법 정보
을 로드하고, 다음은 정적 리소스를 참조하는 코드입니다. 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 파일을 엽니다. aiohttp의 정적 리소스 경로 추가 방법 정보

URL의 접두사가 aiohttp의 정적 리소스 경로 추가 방법 정보인 것을 볼 수 있습니다.
접두사를 수정하면 /css/

 app.router.add_static(&#39;/css2017/&#39;,
                       path=&#39;static/css&#39;,
                       name=&#39;css&#39;)

페이지가 다음과 같이 됩니다.


css 파일도 액세스할 수 없습니다. aiohttp의 정적 리소스 경로 추가 방법 정보

aiohttp의 정적 리소스 경로 추가 방법 정보에서 수정 참조 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_staticcss2017
CSS 파일을 열 수도 있습니다: aiohttp의 정적 리소스 경로 추가 방법 정보

URL 접두사가 aiohttp의 정적 리소스 경로 추가 방법 정보으로 변경되었습니다.
이때 /css2017/ 파일을 직접 열면
디렉토리에 index.html 폴더가 없기 때문에
aiohttp의 정적 리소스 경로 추가 방법 정보
로 표시됩니다. staticcss2017이제

메서드의 기본 사용법을 이해했습니다. 또한 add_static 매개변수를 재정의하여 서버에서 정적 리소스가 저장되는 실제 디렉터리를 숨길 수도 있고 분산할 수도 있습니다. 모든 리소스 파일은 동일한 경로 접두사로 통합됩니다. 또한 prefix을 추가하면 정적 리소스의

index

디렉터리를 표시할 수 있습니다. 기본적으로 액세스는 금지되어 있습니다. show_index=True

app.router.add_static('/css2017/',
                       path='static/css',
                       name='css',
                       show_index=True)

위 내용은 aiohttp의 정적 리소스 경로 추가 방법 정보의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.