Python 配置文件regexp以匹配两个目录的或
如何指定路径来为来自两个目录之一的文件提供服务,这两个目录类似于Python 配置文件regexp以匹配两个目录的或,python,regex,google-app-engine,Python,Regex,Google App Engine,如何指定路径来为来自两个目录之一的文件提供服务,这两个目录类似于 - url: /scripts static_dir: ../(app|.tmp)/scripts 我希望任何对/scripts的调用都可以从任何一个 ../app/scripts ../.tmp/scripts 尝试了不同的选择,比如 static_dir: ../app|.tmp/scripts static_dir: ../(.*?)/scripts 但是没有起作用 参考文献 -第一个正则表达式中的竖条将其“or”
- url: /scripts
static_dir: ../(app|.tmp)/scripts
我希望任何对/scripts
的调用都可以从任何一个
../app/scripts
../.tmp/scripts
尝试了不同的选择,比如
static_dir: ../app|.tmp/scripts
static_dir: ../(.*?)/scripts
但是没有起作用
参考文献
-第一个正则表达式中的竖条将其“or”功能应用于其左右两侧的全部内容,因此它实际上是在寻找“./app”或“.tmp/scripts” -点是正则表达式中的一个特殊字符,它匹配除换行符以外的任何字符。这并没有导致这些模式失败,因为它将匹配文本“.”,但它使您的正则表达式更容易接受您可能想要的结果 -你的第二种模式应该是有效的,但如果你只打算在那个位置使用“app”或“.tmp”,那么你可能应该特别使用它们 因此,您的正则表达式应该如下所示:
\.\./(?:app\.tmp)/scripts
至于您的第二个正则表达式未能成功匹配的原因,可能是因为您的代码将正斜杠视为分隔符,在这种情况下,您需要使用反斜杠对每个正则表达式进行转义:
\.\.\/(?:app |\.tmp)\/scripts
。有两个错误:
app.yaml
级别低的文件,因为外部的内容都不是由Google app Engine处理的,所以千万不要从你的app.yaml
文件中的。
开始所以你的问题的答案是:这真的不可能。我建议您将所有要提供服务的文件放在一个与
app.yaml
处于同一级别(或更深)的文件夹中,并将其指向那里。+1谢谢。我在开发模式下做了…/它成功了。我可以使用符号链接将其保存在应用程序中。你的解释是什么。有道理。谢谢。它将在开发模式下工作,但是这些文件不会被上传,除非你打算对此做些什么。。符号链接可能有效。这可能是解决regexp问题的正确方法,但不能解决Google App Engine的OP问题。。