2011-03-18 63 views
8

下面的app.yaml在我的本地开发服务器上效果很好..但是当我将它部署到生产环境时,所有静态文件都会抛出404错误。服务器无法找到任何静态文件。一直在寻找小时找不到有效的解决方案。Google App Engine静态文件GET 404

注意:我正在开发与mac,因此意识到系统的区分大小写的本质。

application: dev-scanner 
version: 1 
runtime: python 
api_version: 1 

handlers: 
- url: /(.+) 
    static_files: static_files/\1 
    upload: ./static_files/(.+) 

- url:/
    static_files: static_files/index.html 
    upload: ./static_files/index.html 

下面是从日志中的错误

2011-03-18 01:18:07.033/404 21ms 0cpu_ms 0KB的Mozilla/5.0(Macintosh的; U; 英特尔的Mac OS X 10_6_6 ; en-US) AppleWebKit/534.16(KHTML,像Gecko) Chrome/10.0.648.134 Safari/534.16,gzip(gfe),gzip(gfe),gzip(gfe) 76.126.174.202 - - [18/Mar/2011:01:18:07 -0700]“GET/ HTTP/1.1”404 0 - “Mozilla/5.0 (Macintosh; U; Intel Mac O S X 10_6_6; en-US)AppleWebKit/534.16(KHTML,如 Gecko)Chrome/10.0.648.134 Safari/534.16,gzip(gfe),gzip(gfe),gzip(gfe)“ ”dev.app-scanner.com“ MS = 21个cpu_ms = 0 api_cpu_ms = 0 cpm_usd = 0.000053W¯¯ 2011-03-18 01:18:07.012由handler引用静态文件 未找到: static_files/index.html中

这里是文件我使用后的系统结构appcfg.py download_app -A

enter image description here

+2

'。/'是多余的。我不确定它是否会导致您的问题,但我会尝试删除它。 – geoffspear 2011-03-18 12:35:31

+0

如果将yaml上的'static_files'更改为'static_dir',会发生什么? – 2011-03-18 09:59:24

+0

我有点晚,但我想指出,我有一个不同的解决方案相同的问题。对于未来的读者:仔细检查以确保您的包含文件和您的文件名完全匹配(包括案例)。我在Windows上开发(对不起),并认为'image.PNG'会被识别为与'image.png'相同,但是GAE的环境区分了这两者。 – 2016-12-19 19:09:11

回答

7

采取这一主旨来看看的app.yaml:

https://gist.github.com/873098

它成功地提供一个静态的网站。我看到的主要区别在于缺少上面提到的@Wooble所指的'./',并且使用(。*)而不是(。+)作为主要的正则表达式。 (。+)应该在理论上起作用。

+0

像魅力一样工作!谢谢Calvin,这个app.yaml非常有用,涵盖了所有的情况。 @Jorge @Wooble,感谢帮助的人们 – Santthosh 2011-03-18 16:59:10

相关问题