Google App Engine URL Routing with App.Yaml for Static resou



我正忙着将应用程序迁移到 GAE。我曾经使用 timthumb.php 从静态 img 文件夹中按需调整图像大小。从同一个文件夹中,我曾经提供静态图像

例如:example.com/img/image_name.jpg example.com/img/timbthumb.php?src=example.com/img/image_name.jpg&w=50&h=50

等。

我不再使用timbthump了.php我已经重写了它以通过CloudStorageTools.php api提供图像,并且我不想通过所有代码来重写图像路径。

现在,在我的本地环境中,谷歌应用引擎通过timbthumb.php提供两个版本的图像,静态和动态。

在实时环境中,GAE 仅提供静态或动态服务,我无法构建 URL 处理程序来同时为两者提供服务。

音色拇指.php图像在两个处理程序中都引发 404 错误。

我的应用程序.yaml

application: my-app
version: 1
runtime: php55
api_version: 1
threadsafe: yes
handlers:
- url: /favicon.ico
  static_files: favicon.ico
  upload: favicon.ico
- url: /css
  static_dir: dir/css
 #timbthumb.php images
- url: /img/(.+.php)$
  script: dir/img/timbthumb.php
#static images
- url: /img
  static_dir: dir/img
#all other php files
- url: /.*
  script: dir/index.php

我的问题,如何通过 example.com/img/和位于 app.yaml 中 example.com/img/timbthumb.php 的 timthumb.php 脚本使 GAE 路由静态图像?

谢谢

根据文档,您无法从静态目录提供脚本:

静态目录处理程序可以轻松提供整个内容 作为静态文件的目录。每个文件都使用 MIME 提供 与其文件扩展名对应的类型,除非被 目录的mime_type设置。给定的所有文件 目录作为静态文件上传,都无法运行 作为脚本

它似乎在开发服务器中运行的事实只是另一个事实的反映,即开发服务器只是 GAE 的近似值,而不是真正的 GAE。

如果映像路径命名允许,则可以使用static_files路由规则而不是static_dir规则:

静态文件模式处理程序将 URL 模式与路径相关联 与应用程序一起上传的静态文件。网址模式常规 表达式可以定义要在 文件路径的构造。您可以使用它代替 static_dir映射到目录结构中的特定文件,而无需 映射整个目录

最新更新