为了账号安全,请及时绑定邮箱和手机立即绑定

app.yaml:URL 中带有 static_dir 的通配符?

app.yaml:URL 中带有 static_dir 的通配符?

C#
富国沪深 2021-07-15 18:15:45
我在 app.yaml 中将正则表达式匹配为目录名称的尝试不起作用:- url: /v1_.*  static_dir: static/v1  expiration: "364d"虽然这个官方规范说支持正则表达式语法。有没有办法让这项工作?即/v1_2014-01-29/img/logo.png应该匹配静态文件/static/v1/img/logo.png。琐事我使用 Google App Engine 来提供Go 网络应用程序。我想最大限度地延长浏览器缓存的寿命,最大限度地减少请求数量,并仍然为我的 css/js/png 的新版本提供服务,我相信revving 文件名是实现这一目标的最佳实践。此外,由于添加变量查询字符串 ( /v1/img/logo.png?2014-01-29) 可能会导致代理和缓存问题,我更喜欢显示变量目录名称 ( /v1_2014-01-29/img/logo.png),指向相同的底层服务器目录。
查看完整描述

2 回答

?
慕仙森

TA贡献1827条经验 获得超7个赞

在我看来,超出 url 定义匹配(从一开始就匹配)的 URL 的任何部分都附加到 static_dir。


因此,/v1_2014-01-29/img/logo.png如果文件路径是static/v1/img/logo.png(使用 Python 尝试),则以下处理程序应匹配:


- url: /v1_(\d+-?)+

  static_dir: static/v1


查看完整回答
反对 回复 2021-07-19
?
元芳怎么了

TA贡献1798条经验 获得超7个赞

在 olivierdm 的回答之后,我将我的 yaml 更改为:


- url: /v1_.*_

  static_dir: static/v1

  expiration: "364d"

和我要生成的 html 模板/v1_2014-01-29_/img/logo.png。


基本上,额外的任意字符下划线_强制.*匹配2014-01-29,而不是空字符串。


现在每次我希望访问者重新加载静态文件时,我只需更改 tempating 中的日期(我不再触摸 app.yaml)。此外,对“过时”URL 的任何意外请求仍然会成功并提供新资源。


查看完整回答
反对 回复 2021-07-19
  • 2 回答
  • 0 关注
  • 181 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信