2016-06-22 31 views
0

私はGoLang devを初めて使用しており、簡単なWebアプリケーションを作成しようとしています。私はこのチュートリアルhttps://www.youtube.com/watch?v=AiRhWG-2nGUに従っています。GoLangでファイルを読み取ることができません

しかし、私はindex.htmlファイルを提供することすらできません。

これは私のコード

func check(e error) { 
    if e != nil { 
     fmt.Println(e) 
     panic(e) 
    } 
} 

func Index(w http.ResponseWriter, r *http.Request) { 
    fmt.Println("Index functoin") 
    indexHTML, err := ioutil.ReadFile("index.html") 
    check(err) 
    fmt.Println(indexHTML) 
    w.Write(indexHTML) 
} 

であり、これは誤りである私のツリー構造は、私が欲しいのは、奉仕することができることですので

BasicWebServer/ 
BasicWebServer/main.go 
BasicWebServer/index.html 
BasicWebServer/static/ 
BasicWebServer/static/index.html 

のようなものです

Index functoin 
open index.html: no such file or directory 

を作成しましたindex.htmlはすでに円滑に実行されているAngularJSアプリケーションです。私は静的なファイルを試してみました。

router := NewRouter() 
s := http.StripPrefix("/static/", http.FileServer(http.Dir("./static/"))) 

しかし、私は今考えている最も基本的なアプローチを試みています。

助けてください。

あなたはBasicWebServer/main.gostaticフォルダ内の1、BasicWebServer/index.htmlではなく表示したい場合は、あなたが適切にHTTPサーバーを設定しなかったようで、あなたに

+0

ファイルは、サーバープロセスの作業ディレクトリからの相対パスである必要があります。ソース内の場所は、サーバーを実行する場所とは関係ありません。 – JimB

+2

[404ページが見つかりません - レンダリングCSSファイル]の可能な複製(0120-939-363)/ – icza

+2

関連する/可能な重複[なぜ静的ファイルにアクセスするためにhttp.StripPrefixを使用する必要がありますか?](http://stackoverflow.com/questions/27945310/why-do-i-need-to-use-http-stripprefix-to-access -my-static-files) – icza

答えて

2

ありがとうございます。

ここにあなたのコードがあります。あなたのコードは、パッケージ宣言、インポート、および期待通りに機能するmainです。

package main 

import (
    "fmt" 
    "io/ioutil" 
    "net/http" 
) 

func check(e error) { 
    if e != nil { 
     fmt.Println(e) 
     panic(e) 
    } 
} 

func Index(w http.ResponseWriter, r *http.Request) { 
    fmt.Println("Index functoin") 
    indexHTML, err := ioutil.ReadFile("index.html") 
    check(err) 
    fmt.Println(indexHTML) 
    w.Write(indexHTML) 
} 

func main() { 
    http.HandleFunc("/", Index) 

    err := http.ListenAndServe(":8080", nil) 
    check(err) 
} 
+0

ねえ、男。答えてくれてありがとう。私はちょうどそれを試して、それは動作しませんでした。私は "localhostのページは動作していません localhostはデータを送信しませんでした ERR_EMPTY_RESPONSE"もう一度。私はあなたのソースをコピーし、それを新しいファイルmain2.goに貼り付け、 "BasicWebServer/main2.goを実行する"を実行しました。 index.htmlファイルはmain2.goと同じディレクトリ.... – mp3por

+0

インデックスfunctoin22222 オープンのindex.htmlである:そのようなファイルやディレクトリ .... これは私が提供した場合は、コンソール – mp3por

+0

で出力されません完全なパス私は正しいファイルを得る。しかし、私はすべての静的なインポートは私のセットアップにバインドされることを意味するので、私は完全なパスを供給する必要はありません。これについて何をすることができますか? – mp3por

関連する問題