配置文件正则表达式以匹配两个目录的 OR



如何指定路径以从类似于

- url: /scripts
  static_dir: ../(app|.tmp)/scripts

我希望任何对/scripts的调用都来自

../app/scripts
../.tmp/scripts

尝试了不同的选项,例如

static_dir: ../app|.tmp/scripts
static_dir: ../(.*?)/scripts

但没有用。

参考https://developers.google.com/appengine/docs/python/config/appconfig

有两个错误:

  1. 您不能指向比app.yaml级别更低的文件,因为外部的任何内容都不是由 Google App Engine 处理的,因此切勿从app.yaml文件中的../开始。

  2. 正如您从文档中看到的那样,static_dir是一个将作为静态文件与应用程序一起上传的目录,因此尝试上传指向相同路径的两个目录没有多大意义,即使正则表达式成功,也很可能会失败。

所以你的问题的答案是:这真的不可能。我建议将要提供的所有文件放入一个与app.yaml位于同一级别(或更深)的文件夹中,并将其指向该文件夹。

-竖线 | 在你的第一个正则表达式中,将其"or"函数应用于其左侧和右侧的全部内容,因此它实际上正在寻找"../app"或".tmp/scripts"。

-点是正则表达式中的一个特殊字符,它匹配换行符以外的任何字符。 它不会导致这些模式失败,因为它将与文字"."匹配,但它使您的正则表达式更容易接受您可能希望它失败。

-你的第二种模式实际上应该有效,但如果你只打算在该位置使用"app"或".tmp",你可能应该专门使用它们。

因此,您的正则表达式应如下所示: ../(?:app|.tmp)/scripts

至于为什么你的第二个正则表达式没有成功匹配,可能是因为你的代码将正斜杠视为分隔符,在这种情况下,你需要用反斜杠转义每个正则表达式:../(?:app|.tmp)/scripts

最新更新