的解释是从Handlers element表static_files
行:
static_files
可选。静态文件模式处理程序将URL模式与 路径关联到应用程序上传的静态文件。 URL模式 正则表达式可以定义在构建文件路径时使用的正则表达式分组 。您可以使用此代替 static_dir映射到目录结构中的特定文件,而不映射整个目录。
实施例:
handlers:
# All URLs ending in .gif .png or .jpg are treated as paths to
# static files in the static/ directory. The URL pattern is a
# regular expression, with a grouping that is inserted into the
# path to the file.
- url: /(.*\.(gif|png|jpg))$
static_files: static/\1
upload: static/.*\.(gif|png|jpg)$
的url
是所请求的路径,同时static_files
和upload
是相对于你的应用/服务源目录真正的文件路径,与\1
和.*\.(gif|png|jpg)$
分别由URL正则表达式替换匹配分组的价值 - 无论是在外部轮回内部。
因此,对/a_file.gif
的请求将与url
正则表达式匹配,从而产生a_file.gif
分组。它将被替换为static_files
和upload
作为static/a_file.gif
- 应用程序源代码中文件的实际路径。
与您static_dir
配置任何文件存在下assets/images
如果匹配的请求/assets/images/<the_file>
而成,那文件名是什么regardles会送达。
使用static_files
配置,您可以只选择要提供的特定文件名(与正则表达式模式相匹配),并且可以使它们以不同的名称和/或与其实际相关的路径显示应用程序目录。
你static_files
的配置,如果你提出要求,以正确的路径应该被工作,像/assets/images/<some_file>.png
例如(我假定这就是存在的图像文件)。
但是,如果你想要的,例如,服务于位于根据该assets/images
DIR文件,但只是要求为/<some_file>.png
(即没有该路径前缀),你需要以不同的方式进行配置:
# Serve images as static resources.
- url: /(.+\.(gif|png|jpg))$
static_files: assets/images/\1
upload: assets/images/.+\.(gif|png|jpg)$
而且检查您没有重叠static_dir
和/或static_files
路径配置 - 这可能会导致模糊的问题,请参阅Static files are missing