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...)

请求行仍然说没问题

"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 回答