我在 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
元芳怎么了
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 的任何意外请求仍然会成功并提供新资源。
- 2 回答
- 0 关注
- 181 浏览
添加回答
举报
0/150
提交
取消