使用Google App Engine和Go的静态文件

时间:2014-08-25 15:15:01

标签: google-app-engine go

我有问题。

我无法访问静态目录中的任何文件。

的app.yaml:

application: campana-web-1
version: 1
runtime: go
api_version: go1

handlers:
- url: /hello
  script: _go_app
- url: /.*
  static_dir: web

结构:

campana-web-1:
  +-- src:
      +-- hello.go
  +-- web:
      +-- index.html
      +-- test.jpg
  +-- app.yaml

我使用goapp deploy .

当我去http://website.com/hello时,它工作,但不是当我用test.jpg或index.html替换你好时我有

Error: Not Found

The requested URL / was not found on this server.
我错过了什么?

谢谢。

1 个答案:

答案 0 :(得分:1)

static_dir 功能将目录映射到目录,但不会将文件映射到目录。

如果要使用globs(并且不包含目录)映射文件集合,请改为使用 static_files upload 的组合。

对于你的情况,它是:

- url: /(.*)
  static_files: web/\1
  upload: web/.*

但你可以使用 static_dir ,只是不要使用glob部分:

- url: /
  static_dir: web

这也应该可以解决问题。

再次查看文档中的Static Directory HandlersStatic File Patterns部分,特别是有关static_dir的部分,其中说明:匹配的网址模式结束后的所有内容都会附加到 static_dir 以形成所请求文件的完整路径。“这就是你正在做的事情不起作用的原因: static_dir 功能的范围比你想的要多得多。