【问题标题】:how to get static URL inside GAE app如何在 GAE 应用程序中获取静态 URL
【发布时间】:2012-09-27 17:44:30
【问题描述】:

我的app.yaml:

handlers:
  - url: /static
    static_dir: static

  - url: /.*
    script: main.app

有没有办法在我的 webapp2 代码中获取 /static 路由的绝对 URL?

【问题讨论】:

  • 您的意思是检查静态文件是否在该文件夹中?并知道他们有什么绝对网址?
  • 我的意思是在我的应用程序中,我需要为我的静态文件发出绝对 URL。这是因为我需要在外部发布 URL。我需要将我的一个脚本文件的 URL 发布到外部服务 (shopify) 上,以便他们调用此 URL。

标签: google-app-engine webapp2


【解决方案1】:

当您在应用程序中定义路由时,您可以计算一个 uri。见:http://webapp-improved.appspot.com/guide/routing.html#building-uris 借助这些信息和您对 app.yaml 的了解,您可以计算静态 url 的 uri。

在您的 main.app 中,您为静态添加了一个虚拟路由定义。它只会用于构建 uri,永远不会用于路由。

来自 webapp2 文档的修改示例:

app = webapp2.WSGIApplication([
    webapp2.Route('/', handler='HomeHandler', name='home'),
    webapp2.Route('/static', handler=HomeHandler, name='static'), # never used for routing
])

【讨论】:

  • 谢谢。这是我的怀疑,我无法避免重复自己并将 pat 硬编码在代码和 yaml 文件中。
  • 可以在此发布完整的解决方案吗?将不胜感激。
【解决方案2】:

不,没有办法查询、循环或找出作为静态上传的文件夹中的内容。

但只要您不使用新的静态文件部署应用程序,静态文件就不会更改。

您需要保留静态文件并自己编写这些绝对网址

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-18
    • 1970-01-01
    • 1970-01-01
    • 2012-05-08
    • 2021-11-23
    • 2010-12-20
    相关资源
    最近更新 更多