我想要以{/ 3}之类的“/”结尾的任何网址获取请求,以接收该目录中的index.html文件...在我的示例中,它应该会收到http://website.com/some_dir/。
我让它在GAE Launcher /本地服务器本地工作......但是当我部署它并通过website.appspot.com访问它时它失败了...... 我收到错误:
错误:未找到
在此服务器上找不到请求的URL / some_dir /。
这就是我的yaml:
- url: /
static_files: staticLocation/index.html
upload: staticLocation/index.html
- url: (.+)/
static_files: staticLocation/\1/index.html
upload: staticLocation
- url: /
static_dir: staticLocation
我很好奇它是如何/为什么它在本地很好用,但不是在appspot上... 想法,以及如何解决我的问题?
答案 0 :(得分:0)
第二条路线的“上传”行不够详细,因此内部文件不会部署到appengine。你想要这样的东西:
- url: (.+)/
static_files: staticLocation/\1/index.html
upload: staticLocation/(.*)
- url: /(.+)
static_files: staticLocation/\1/index.html
upload: staticLocation/(.+)/index.html
(你的最后一条路线与第一条路线的网址相同,所以它永远不会被击中,可以删除。)
答案 1 :(得分:0)
我已确认您的问题。在本地工作但不在appspot上工作。要解决您的问题:
- url: (.+)/
static_files: staticLocation/\1/index.html
到
- url: (.*)/
static_files: staticLocation\1/index.html`
它应该正常工作。 (注意:+
已*
更改为url
而/
已移除static_files
为了满足您的好奇心,您与领先的/
相匹配,因此文件系统位置查找为staticlocation//some_dir/index.html
,因为//
折叠为/
,因此文件系统工作正常在你的操作系统中我认为appspot的路径查找不会导致//
崩溃,导致您无法找到index.html文件。
哦,顺便说一下,像我提到的那样修复第二条规则会使你完全不需要第一条规则就可以删除规则。
答案 2 :(得分:-1)
AppEngine生产服务器是区分大小写的文件系统,检查两个外壳是否匹配。