繁体   English   中英

Google App Engine yaml 文件配置

[英]Google App Engine yaml file configuration

我在 Google App Engine 中使用图像、html 文件和 javascript 时遇到问题。 我的应用程序文件夹中有一个名为 static 的文件夹。 在静态文件夹中,我还有 3 个其他文件夹,分别称为“图像”、“html”和“javascript”。 我的 app.yaml 的处理程序部分如下,

handlers:
- url: /html
  static_dir: static/html

- url: /javascript
  static_dir: static/javascript

- url: /images
  static_dir: static/images

- url: /.*
  script: index.app

我尝试访问图像,

self.response.out.write('<img src="images/image.png">')

我使用 jinja2 渲染了一个 html,

jinja_environment = jinja2.Environment(autoescape=True,
                    loader=jinja2.FileSystemLoader(os.path.join(os.path.dirname(__file__), 'html')))

template = jinja_environment.get_template('index.html')
self.response.out.write(template.render(template_values))

我收到一个错误,提示找不到 jinja 模板,也找不到我的图像。 我认为这是使用 Google App Engine 上传和使用文件的正确方法,但显然我错了。

我可以通过 Google App Engine 使用文件夹中的文件的正确方法是什么?

如果您打算在 HTML 中使用模板系统,您不想将其声明为static_dir ,原因是静态文件存储在与应用程序文件不同的文件系统中,因此它们将无法使成为。 当您使用os.path.dirname(__file__)..... ,您正在应用程序的文件系统中查找文件,这与您指定的static目录不同。 所以首先要尝试的是删除:

- url: /html
  static_dir: static/html

从你的处理程序。 然后这将查找您的应用程序文件系统并(希望是 :) )找到它。 您的图像处理程序看起来不错,所以我会先尝试一下,看看它是否有所作为。

使用 Jinja,您可以渲染一个编写 HTML 的模板。 那不是静态服务。

在您的 app.yaml 中,您使用: static/images 或 static/html 但在您的代码中,您使用了另一条路径!! 没有静态文件夹。

因此,如果您有一个文件夹 static 并且在该文件夹中您有一个文件夹图像:

self.response.out.write('<img src="/images/image.png">')

还有你的装载机:

jinja_environment = jinja2.Environment(autoescape=True,
                    loader=jinja2.FileSystemLoader(os.path.join(os.path.dirname(__file__),'static', 'html')))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM