【问题标题】:Static file with Google App Engine and Go使用 Google App Engine 和 Go 的静态文件
【发布时间】:2014-08-29 02:25:56
【问题描述】:

我有问题。

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

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 替换 hello 时,我有

Error: Not Found

The requested URL / was not found on this server.

我错过了什么?

谢谢。

【问题讨论】:

  • 我有一个未找到的错误
  • 可能将- url: /.* 替换为- url: /*.*?我不确定这是否可行,但它似乎是正确的。
  • 你的提议我试过了,还是不行。

标签: google-app-engine go


【解决方案1】:

static_dir 功能将目录映射到目录,而不是像您尝试的那样将文件映射到目录。

如果你想用 glob 映射一组文件(并且没有包含目录),那么请使用 static_filesupload 的组合。

对于你的情况,它会是:

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

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

- url: /
  static_dir: web

这也应该可以解决问题。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-07-18
    • 1970-01-01
    • 1970-01-01
    • 2017-08-15
    • 2011-01-11
    • 1970-01-01
    • 2016-06-12
    • 2015-06-23
    相关资源
    最近更新 更多