質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Go

Go(golang)は、Googleで開発されたオープンソースのプログラミング言語です。

Google App Engine

Google App Engineは、Googleの管理するデータセンター上でウェブアプリケーションの開発が可能なクラウドコンピュータ技術です。Java、Python、Go用にSDKが用意されています。

Q&A

解決済

1回答

1953閲覧

Angular/cliでビルドしたdistファイルをGAE/GOで描画する方法

kaoru3151

総合スコア50

Go

Go(golang)は、Googleで開発されたオープンソースのプログラミング言語です。

Google App Engine

Google App Engineは、Googleの管理するデータセンター上でウェブアプリケーションの開発が可能なクラウドコンピュータ技術です。Java、Python、Go用にSDKが用意されています。

0グッド

0クリップ

投稿2017/05/31 05:47

Angular/cliでビルドしたdistファイルをGAE/GOで描画したいのですが、うまく行きません。

やっていることは、

func init() { http.Handle("/", &templateHandler{filename: "index.html"}) http.HandleFunc("/api/", restHandler) }
type templateHandler struct { once sync.Once filename string tpl *template.Template } func (t *templateHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) { t.once.Do(func() { t.tpl = template.Must(template.ParseFiles(filepath.Join("templates", t.filename))) }) t.tpl.Execute(w, nil) }

templatesフォルダーにdistのファイルを入れてindex.htmlを描画できると思ったのですが下記のエラーにつまずいてしまいます。

Uncaught SyntaxError: Unexpected token

フロントサイドはAngularでサーバーサイドはGAE/GOでやっている方いらっしゃったらどのような感じでやっているのか教えてください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

おそらくですが、index.htmlの配信には成功していてもそこから要求されるmain.bundle.jsなどのリソースが正しく配信されていないのだと思います。
Chromeの開発者ツールのNetworkタブなどで、JavaScriptファイルのリクエストとレスポンスを確認してみてください。

推測では静的ファイルに対するすべてのリクエストがindex.htmlと同じHTMLファイルとして返却されていると思いますので、AngularではなくGoのhttp.Handle周りのほうの問題でしょう

投稿2017/06/01 03:23

laco

総合スコア155

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kaoru3151

2017/06/01 04:46

コメントありがとうございます。 Goのhttp.Handle周りのhttp.FileServerでJavascriptファイルは解決しました。 ただ、無理やりGAE/GOにフロントのコードを載せた感が強いですね。。 サーバー側GAE/GOで、フロント側Angularでときっちり分けてやり取りをしたほうがいいんでしょうか?
laco

2017/06/01 09:06

GAE/Goですとhttp.Handle("/", )でファイル配信するのはよくある一般的なものだと思いますが、仰る通りGAEはAPIに専念して、フロントエンドは別のホスティングサービスなどで配信するのもアリだとは思います。 もちろんその際はCORSの設定など必要になります。
kaoru3151

2017/06/05 00:22

回答、ありがとうございます。 Httpアクセス制御も必要になりますけど、別のホスティングサービスを利用して、GEO/GOはREST APIに専念したほうが、作業を分けやすい感じがするので、そちらでやっていこうと思います。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問