7

我正在开发一个 Google App Engine 项目。

我的应用程序在本地工作并且看起来正确,但是当我尝试在图像目录中上传图像时,它们没有显示在 apppot 中。

作为一个小故障排除,我在“/images/page2.html”中放置了一个 HTML 页面,我可以在 apppot 中加载该页面,但我的页面不显示我的图像。所以,这不是我的路径的问题。

作为另一个健全性检查,我还上传了一个包含 .css 代码的样式表目录,并且正在正确读取。

我怀疑问题出在我的 app.yaml 文件中。

有任何想法吗?

我不想在这里粘贴所有代码,但这里有一些关键行。前两个工作正常。第三个不起作用:

<link type="text/css" rel="stylesheet" href="/stylesheets/style.css" />
<a href="/images/Page2.html">Page 2</a>
<img src="/images/img.gif">

这是我的 app.yaml 文件

application: myApp
version: 1
runtime: python
api_version: 1

handlers:
- url: /stylesheets
  static_dir: stylesheets

- url: /images
  static_dir: images

- url: /.*
  script: helloworld.py
4

5 回答 5

4

您必须为图像和 css 文件等静态内容配置 app.yaml

例子:

 url: /(.*\.(gif|png|jpg))
  static_files: static/\1
  upload: static/(.*\.(gif|png|jpg))

有关更多信息,请查看: http ://code.google.com/appengine/docs/configuringanapp.html

于 2008-11-09T07:22:01.890 回答
2

我敢打赌,您的问题是您使用的是 Windows。

如果是这种情况,我相信您的 static_dir 值需要前面的斜杠。

于 2008-10-03T02:53:45.137 回答
1

我正在使用 Java 版本的 App 引擎,我遇到了服务器无法提供静态图像的类似问题。

最终起作用的是在我的情况下更改 AppEngine 配置文件“appengine-web.xml”以包含

<static-files>
<include path="**.*"/>
    <include path="/images/**.*" />
</static-files>

我的图像位于 /images 目录中,而 HTML 和 CSS 位于 . WEB-INF 级别的目录

于 2009-06-20T09:29:51.727 回答
0
<img src="/images/img.gif">

此行无法向您显示图像。试试这个:

1-创建一个类来处理“图像请求”

class GetImage(webapp.RequestHandler):
      def get(self):
       self.response.headers['Content-Type'] = 'image/jpg'
       self.response.out.write(image_object)

2-在您的 page.html 中:

<img src="/image"

3-在您的 code.py 中的主要功能:

application = webapp.WSGIApplication(('/image', GetImage), debug=True)

玩得开心

于 2008-10-17T04:24:13.687 回答
0

@jamtoday 前面的斜线没有什么不同,但它确实让我开始弄清楚每个应用程序需要被告知我的目录结构。

所以,我没有什么非常确定的补充,但我想跟进,因为我让它工作了,但我没有在它工作后探索所有问题。

一项有帮助的更改是停止从 HwlloWorld/src/ 目录工作并开始在 HelloWorld/ 目录中工作。似乎 dev_appserver 获取了所有依赖项,但远程服务器没有。本质上,我的本地链接的相对路径与上传后链接的相对路径不匹配。

我还意识到 dev-appserver 依赖于 .yaml 文件以及 appcfg 脚本。那是。. .如果您将目录添加到项目中,然后尝试链接到该目录中的文件,则需要将该目录添加到 .yaml 文件中,然后重新启动 dev-appserver 以进行此操作。

因此,如果您为 .yaml 文件提供正确的信息,则可能有一些方法可以处理我最初尝试做的事情,但更改为本地不同的目录结构会为我处理它。

于 2008-10-08T14:59:43.143 回答