【问题标题】:Google App Engine URL Routing with App.Yaml for Static resource and Script使用 App.Yaml 进行静态资源和脚本的 Google App Engine URL 路由
【发布时间】:2016-06-06 21:21:32
【问题描述】:

我正忙于将应用程序迁移到 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 路由静态图像?

谢谢

【问题讨论】:

    标签: google-app-engine app.yaml google-app-engine-php


    【解决方案1】:

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

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-06-13
      • 2015-05-15
      • 2011-02-11
      • 1970-01-01
      • 2018-03-23
      • 1970-01-01
      • 2015-01-28
      • 2012-11-15
      相关资源
      最近更新 更多