2

Web アプリケーション開発を学ぼうとしています。現在、Google App Engine を使用してアプリを作成しています。サイトに画像を表示する実験をしていましたが、サイトには代替テキストしか表示されません。

初めてこれを試したとき、静的ファイルについて知りませんでした。この問題を修正すると、画像のリクエスト行に「"GET /images/pic.jpg HTTP/1.1" 200 -」が表示されました。dev_appserver を実行すると、イメージングを行うには Python モジュール "PIL" が必要であるという警告が表示されました。ダウンロードしてインストールすると、警告は消えましたが、それでも画像は読み込まれません! リクエスト行は、画像が見つかったことを示しています。しかし、サイトの表示はすべて代替テキストです。

とにかく、app.yaml とスクリプトのコードは次のとおりです (注: Python 2.5 のコードを使用しています)。

-----------app.yaml------------

application: mysite
version: 1
runtime: python
api_version: 1

handlers:
- url: /.*
  script: myscript.py

- url: /images
  static_dir: images

- - - - - 脚本 - - - - - -

template = """
        <body>
                <br>
                <br>
                <img src="/images/pic.jpg" alt="Clone Pic" width="100", height="70"/><br>
        </body>
"""
print "Content-Type: text/html"
print template

私のアプリケーションディレクトリは次のようになります。

Root

   app.yaml

   script.py

   images

      pic.jpg

最近、スクリプトの画像ディレクトリの名前を変更しても

<img src="/foo/pic.jpg...)

リクエストラインはまだOKと言っています

"GET /foo/pic.jpg HTTP/1.1" 200 -

何が起こっているか知っている人はいますか?

4

1 に答える 1

4

ハンドラの順序は重要です。/.* はすべての URI に一致するため、通常は最後にそれが必要です。次のことを試してください...

handlers:
- url: /images
  static_dir: images

- url: /.*
  script: myscript.py

また、画像ファイルが static_dir で指定したディレクトリ images の下にあることを確認してください。

お役に立てれば。

于 2012-05-12T05:47:58.653 に答える