在app.yaml中混合脚本和静态

时间:2015-06-05 10:31:52

标签: google-app-engine go app.yaml

我希望在一个应用程序中使用Google App Engine来提供静态文件和REST请求。

我使用这个app.yaml

application: test
version: 1
runtime: go
api_version: go1

default_expiration: "7d 5h"

handlers:
- url: /(index.html)?
  static_files: static/app/index.html
  upload: static/app/index.html
  http_headers:
    Content-Type: text/html; charset=UTF-8

- url: /
  static_dir: static/app/
  http_headers:
    Vary: Accept-Encoding

- url: /.*
  script: _go_app

它适用于静态文件,但我无法访问我的脚本。

package main

import (
    "fmt"
    "net/http"
)

func init() {
    http.HandleFunc("/hello_world", handler)
}

func handler(w http.ResponseWriter, r *http.Request) {
    fmt.Fprint(w, "Hello, world!")
}

有可能吗?如果是,我该怎么办?

1 个答案:

答案 0 :(得分:1)

是的,应用程序可以同时提供静态文件和动态内容。实际上并没有什么神奇的要求,这对大多数网络应用来说都是正常的。

您的配置看起来不错。你应该改变一件事:go文件包。

请勿使用包main,而是使用其他包,并确保将.go文件放入其中。例如,如果您为包mypackage命名,请使用此文件夹结构:

+ProjectRoot
    app.yaml
    +mypackage
        myfile.go

用行开始myfile.go

package mypackage