2015-06-05 3 views
2

Я хочу использовать Google App Engine для подачи статических файлов и запроса REST в одном приложении.Сценарий смешивания и статический файл в app.yaml

Я использую этот 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

Да, приложение может обслуживать как статические файлы, так и динамический контент. На самом деле для этого нет ничего волшебного, это нормально для большинства веб-приложений.

Ваша конфигурация выглядит нормально. Одна вещь, которую вы должны изменить: пакет вашего файла go.

Не используйте пакет main, вместо этого используйте другой пакет и убедитесь, что в него вложен файл .go. Например, если вы назвали ваш пакет mypackage, использовать эту структуру папок:

+ProjectRoot 
    app.yaml 
    +mypackage 
     myfile.go 

И начните myfile.go с линии:

package mypackage 
Смежные вопросы