2017-11-11 25 views
0

私はapp.yamlを少し良く理解しようとしています。私ははるかに簡単に使用しかしApp Engine - 画像のためのapp.yamlハンドラ

# Serve images as static resources. 
- url: /(.+\.(gif|png|jpg))$ 
    static_files: \1 
    upload: .+\.(gif|png|jpg)$ 
    application_readable: true 

GCPのドキュメントは、このようなあなたのイメージのためのハンドラを作成することをお勧めし

- url: /assets/images 
    static_dir: assets/images 

私はGoogleがあり、余分なパラメータと正規表現を理解したいと思います中古。

Googleと私のハンドラの違いは何ですか?

私のハンドラが動作している瞬間のPSですが、Googleハンドラを使用すると画像が読み込まれません。

答えて

2

説明はHandlers elementテーブルからstatic_files行にある:

static_files

オプション。静的ファイルパターンハンドラは、URLパターンを パスに関連付け、アプリケーションでアップロードされた静的ファイルへのパスを指定します。 URLパターン 正規表現では、正規表現グループを定義して、ファイルパスの構築に を使用できます。 static_dirの代わりにこれを使用して、ディレクトリ構造全体の中の特定のファイルにマップすることができます。

例:static_filesuploadは、実際のファイル・パスは、あなたのアプリケーション/サービスのソースディレクトリを基準にしていながら

handlers: 
# All URLs ending in .gif .png or .jpg are treated as paths to 
# static files in the static/ directory. The URL pattern is a 
# regular expression, with a grouping that is inserted into the 
# path to the file. 
- url: /(.*\.(gif|png|jpg))$ 
    static_files: static/\1 
    upload: static/.*\.(gif|png|jpg)$ 

urlは、URLの正規表現に置き換え、それぞれ\1.*\.(gif|png|jpg)$で、要求されたパスであります一致するグループ化値 - 外側の円柱の内部にあるもの。

したがって、/a_file.gifへのリクエストはurl正規表現と一致し、a_file.gifのグループを生成します。 static_filesuploadに置き換えられます。これは、static/a_file.gif - アプリケーションのソースコード内のファイルの実際のパスです。 /assets/images/<the_file>に一致する要求は、そのファイル名が何であるかのregardlesを行われた場合assets/imagesの下に存在するすべてのファイルが提供されるだろう、あなたのstatic_dir設定

static_files設定では、(正規表現のパターンと一致する)提供される特定のファイル名のみを選択することができます。また、別の名前で表示することも、実際とは別のパスで表示することもできますアプリケーションディレクトリ。

あなたstatic_files設定あなたは正しい道に要求を行う場合、例えば/assets/images/<some_file>.pngのように(私はあなたの画像ファイルが存在する場合それだと仮定)作業をする必要があります。

しかし、あなたは、例えば、そのassets/images dirの下にあるファイルを提供したいが、(そのパス接頭辞なしつまり)/<some_file>.pngとして単に要求された場合は、異なるように設定する必要があるだろう。また

# Serve images as static resources. 
- url: /(.+\.(gif|png|jpg))$ 
    static_files: assets/images/\1 
    upload: assets/images/.+\.(gif|png|jpg)$ 

重複するstatic_dirおよび/またはstatic_filesパスが設定されていないことを確認してください。これは曖昧な問題を引き起こす可能性があります。Static files are missing

関連する問題