検索
ホームページバックエンド開発Python チュートリアルaiohttp の静的リソース パスの追加方法について

いわゆる static リソースとは、imagesjs、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 に、2 つの静的ファイル ディレクトリ static/css を指定します。 > と static/fontルーティングを追加します proxy_server.py给2个静态文件目录static/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:是静态文件的url的前缀,以/开始,在浏览器地址栏上显示在网站host之后,也用于index.html静态页面进行引用
path:静态文件目录的路径,可以是相对路径,上面代码使用的static/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需要使用:
aiohttp の静的リソース パスの追加方法について
在浏览器中打开css文件:
aiohttp の静的リソース パスの追加方法について
可以看到是url的前缀是/css/
如果修改前缀:

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

页面变成了:
aiohttp の静的リソース パスの追加方法について
css文件也无法访问了:
aiohttp の静的リソース パスの追加方法について
修改index.html中的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">

虽然目录本身还是css,但通过add_static已经将它视为了css2017,页面回复正常了:
aiohttp の静的リソース パスの追加方法について
css文件也可以打开了:
aiohttp の静的リソース パスの追加方法について
url前缀变成了/css2017/了。
此时直接打开index.html文件就会显示为
aiohttp の静的リソース パスの追加方法について
因为static目录下并没有css2017这个文件夹。

至此就了解了add_static基本使用方法了,可以通过重新定义prefix参数还可以隐藏服务器上真实的存放静态资源的目录,也可以将分散在各处的资源文件统一到同一个路径前缀下。

此外,如果加上show_index=True:

app.router.add_static('/css2017/',
                       path='static/css',
                       name='css',
                       show_index=True)
見てみましょうfirstadd_static メソッド定義:

rrreee

必須の 2 つのパラメータ: aiohttp の静的リソース パスの追加方法についてprefix: 静的ファイルの url のプレフィックスです。 /Start。ブラウザのアドレス バーの Web サイト ホストの後に表示されます。引用

🎜path: 静的ファイル ディレクトリへのパス。相対パスにすることができます。static/css上記のコードで使用されている code> は相対パスです。<code>proxy_server.py が配置されているパスを基準としています。 🎜このページの効果は次のとおりです: 🎜aiohttp の静的リソース パスの追加方法について🎜読み込まれるのはindex.htmlで、以下のコードです静的リソースを参照する: 🎜 rrreee🎜 /font-awesome.min.css で使用する必要があるため、font のパスを追加します: 🎜aiohttp の方法について静的リソース パスの追加🎜ブラウザで CSS ファイルを開きます: 🎜aiohttp の静的リソース パスの追加方法について🎜URLのプレフィックスが/であることがわかります。 css/。 🎜接頭辞を変更すると: 🎜rrreee🎜ページは次のようになります: 🎜aiohttp の静的リソース パスの追加方法について🎜css ファイルにもアクセスできません: 🎜aiohttp による静的リソースの追加についてpath メソッド🎜 index.html 内の css の参照パスを変更します: 🎜rrreee🎜 ディレクトリ自体は css のままですが、add_staticを通じて> code>css2017 とみなされ、ページは通常に戻ります: 🎜aiohttp について: 静的リソース パスの追加方法🎜css ファイルも使用できます。開いた: 🎜aiohttp 静的リソースパスの追加方法について🎜URL プレフィックスが /css2017/ になりました。 🎜この時点で index.html ファイルを直接開くと、🎜aiohttp について: 静的リソース パス メソッドの追加🎜static ディレクトリ <code>css2017 フォルダーがありません。 🎜🎜これで、add_static prefix パラメータを再定義することで、サーバー上で静的リソースが格納されている実際のディレクトリを非表示にしたり、あちこちに散在するリソース ファイルを同じパス プレフィックスの下に統合したりできます。 🎜🎜さらに、show_index=True を追加すると、静的リソース ディレクトリ 🎜index🎜 を表示できます - デフォルトではアクセスが禁止されています: 🎜rrreee🎜🎜🎜

以上がaiohttp の静的リソース パスの追加方法についての詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
Pythonアレイをどのようにスライスしますか?Pythonアレイをどのようにスライスしますか?May 01, 2025 am 12:18 AM

Pythonリストスライスの基本的な構文はリストです[start:stop:step]。 1.STARTは最初の要素インデックス、2。ストップは除外された最初の要素インデックスであり、3.ステップは要素間のステップサイズを決定します。スライスは、データを抽出するためだけでなく、リストを変更および反転させるためにも使用されます。

どのような状況で、リストは配列よりもパフォーマンスが向上しますか?どのような状況で、リストは配列よりもパフォーマンスが向上しますか?May 01, 2025 am 12:06 AM

ListSoutPerformArraysIn:1)ダイナミシジョンアンドフレーケンティオン/削除、2)ストーリングヘテロゼンダタ、および3)メモリ効率の装飾、ButmayhaveslightPerformancostsinceNASOPERATIONS。

PythonアレイをPythonリストに変換するにはどうすればよいですか?PythonアレイをPythonリストに変換するにはどうすればよいですか?May 01, 2025 am 12:05 AM

toconvertapythonarraytoalist、usetheList()constructororageneratorexpression.1)importhearraymoduleandcreateanarray.2)useList(arr)または[xforxinarr] toconvertoalistは、largedatatessを変えることを伴うものです。

Pythonにリストが存在する場合、配列を使用する目的は何ですか?Pythonにリストが存在する場合、配列を使用する目的は何ですか?May 01, 2025 am 12:04 AM

choosearraysoverlistsinperbetterperformance andmemoryeficiencyspecificscenarios.1)largeNumericaldatasets:Araysreducememoryusage.2)パフォーマンス - クリティカル操作:ArraysOfferSpeedBoostsfortsfortsclikeappendedoring.3)タイプリー:Arrayesenforc

リストの要素と配列を繰り返す方法を説明します。リストの要素と配列を繰り返す方法を説明します。May 01, 2025 am 12:01 AM

Pythonでは、ループに使用し、列挙し、包括的なリストを通過することができます。 Javaでは、従来のループを使用し、ループを強化してアレイを通過することができます。 1。Pythonリストトラバーサル方法は、ループ、列挙、およびリスト理解のためのものです。 2。Javaアレイトラバーサル法には、従来のループとループ用の強化が含まれます。

Python Switchステートメントとは何ですか?Python Switchステートメントとは何ですか?Apr 30, 2025 pm 02:08 PM

この記事では、バージョン3.10で導入されたPythonの新しい「マッチ」ステートメントについて説明します。これは、他の言語のスイッチステートメントに相当するものです。コードの読みやすさを向上させ、従来のif-elif-elよりもパフォーマンスの利点を提供します

Pythonの例外グループとは何ですか?Pythonの例外グループとは何ですか?Apr 30, 2025 pm 02:07 PM

Python 3.11の例外グループは、複数の例外を同時に処理することで、同時シナリオと複雑な操作でエラー管理を改善します。

Pythonの関数注釈とは何ですか?Pythonの関数注釈とは何ですか?Apr 30, 2025 pm 02:06 PM

Pythonの関数注釈は、タイプチェック、ドキュメント、およびIDEサポートの関数にメタデータを追加します。それらはコードの読みやすさ、メンテナンスを強化し、API開発、データサイエンス、ライブラリの作成において重要です。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

MantisBT

MantisBT

Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

mPDF

mPDF

mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター