【问题标题】:App Engine app.yaml - limit handlers to dev server onlyApp Engine app.yaml - 仅将处理程序限制为开发服务器
【发布时间】:2013-10-13 00:27:45
【问题描述】:

有没有办法将处理程序仅限于开发服务器(在 App Engine 中)?

我的场景:

在开发中,我将我的 jscss 拆分为许多文件,这样调试和观察流程很容易。我有一个小脚本,它将这些资源编译成 2 个文件(1 个 js 和 1 个 css)并创建一个 index.html 的副本,其中仅包含这两个文件。

原始与编译的 HTML 和资源有不同的路径,我希望生产版本只包含编译的。有什么想法吗?

【问题讨论】:

    标签: google-app-engine app.yaml


    【解决方案1】:

    app.yaml 中,您可以skip some files 并阻止它们被上传,而它们在本地工作时仍然可以访问。

    现在,如果您想检查您的应用是在本地运行还是在生产服务器中运行,您应该检查 SERVER_SOFTWARE 变量:

    import os
    
    PRODUCTION = os.environ.get('SERVER_SOFTWARE', '').startswith('Google App Engine')
    DEVELOPMENT = not PRODUCTION
    

    然后,根据您使用的模板语言,您将必须传递上述其中一种或两种,并根据它们加载缩小版本或实际源代码。

    【讨论】:

    • 我知道关于 SERVER_SOFTWARE 的事情,但这并不是我想要的。由于文件不会被加载,skip_files 让我走到了一半,但我实际上希望 yaml 中的处理程序在生产模式下有所不同。
    【解决方案2】:

    您可以在运行时检查环境以确定您所处的模式。(Lipis 发布了详细信息。)您可以使用它来动态构造馈送到WSGIApplication 的数组,以将请求映射到处理程序。如果您处于开发模式,请将 development-mode-only 条目添加到该数组。

    【讨论】:

      猜你喜欢
      • 2018-04-24
      • 2017-02-02
      • 1970-01-01
      • 2020-03-19
      • 1970-01-01
      • 2019-09-17
      • 2014-02-06
      • 1970-01-01
      • 2019-05-07
      相关资源
      最近更新 更多