2

我正忙于将应用程序迁移到 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 处理程序来同时提供服务。

timbthumb.php 图像在两个处理程序中都引发 404 错误。

我的 app.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 路由静态图像?

谢谢

4

1 回答 1

1

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

静态目录处理程序可以轻松地将目录的全部内容作为静态文件提供服务。除非被目录的 mime_type 设置覆盖,否则每个文件都使用与其文件扩展名对应的 MIME 类型提供服务。给定目录中的所有文件都作为静态文件上传,并且它们都不能作为脚本运行

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

如果您的图像路径命名允许,您可以使用static_files路由规则而不是static_dir一个:

静态文件模式处理程序将 URL 模式与应用程序上传的静态文件的路径相关联。URL 模式正则表达式可以定义用于构建文件路径的正则表达式分组。您可以使用它而不是 static_dir 来映射到目录结构中的特定文件,而无需映射整个目录

于 2016-02-24T15:37:10.617 回答