Google Cloud Platform中app.yaml静态图片与URL重定向配置问题
问题分析与解决方案
你的图片加载失败,核心原因是当前的图片handler规则无法匹配带/mypics/前缀的请求URL。
你实际访问的图片路径是/mypics/Diamond.png,但现有规则url: /(.*\.(bmp|gif|ico|jpeg|jpg|png))仅匹配根路径下的图片(比如/Diamond.png),所以这类带前缀的请求要么被后面的index.html规则拦截,要么直接返回404。
修正后的app.yaml配置
调整图片handler的URL匹配规则,使其覆盖/mypics/开头的图片请求:
runtime: python27 api_version: 1 threadsafe: true handlers: # 匹配/mypics/开头的图片请求 - url: /mypics/(.*\.(bmp|gif|ico|jpeg|jpg|png)) static_files: mypics/\1 upload: mypics/(.*\.(bmp|gif|ico|jpeg|jpg|png)) # 处理所有非图片URL,返回index.html - url: /(.*) static_files: index.html upload: index.html
关键说明
- 图片handler的
url字段改为/mypics/(.*\.(...)),精准匹配以/mypics/开头的图片文件请求; static_files: mypics/\1中的\1对应捕获的文件名部分(比如Diamond.png),会从项目根目录下的mypics文件夹中加载对应文件;- 确保你的项目根目录下确实存在
mypics文件夹,且图片文件(如Diamond.png)正确存放在该文件夹内。
内容的提问来源于stack exchange,提问作者DoubleA
相关产品推荐
相关产品推荐

