0

「go install」またはその他のコマンドを使用して、内部フォルダーを使用して Web アプリをインストール/展開する方法。次のフォルダー構造を持つ小さな Web アプリを作成しました。

SampleWebApp
   |--- swa.go
   |--- static/
          |--- css/x.css
          |--- js/y.js
          |--- html/z.html

私はEclipse ideを使用していますが、goアプリとして実行するとうまく機能します( http://localhost:8080 )が、コマンドラインを使用してインストールする場合

 go install <path>

そして、( http://localhost:8080 ) 404エラーを取得してみてください。確かに、「go install」コマンドは内部フォルダーを実行可能ファイルにコピーしていません。

4

1 に答える 1

1

goエコシステムの仕組みについて少し混乱していると思います。何が起こっているのかについて少し説明してみましょう。「run as go app」と言うときは、おそらく、作成したプログラムをコンパイルして実行し、localhost でサーバーを起動するボタンが Eclipse にあることを意味します。

そのため、Eclipse の舞台裏では、作業ディレクトリで次のようなものが実行されています。

cd $GOPATH/src/<name of app>
go build
./<name of app>

端末で同じことを行うと、おそらく同様に機能します。GOPATH が正しく設定されていることを確認してください。一方、コマンド「go install」は「go build」とほぼ同じですが、実行可能ファイルを $GOPATH/bin に移動します。アプリケーションを実行しないことに注意してください。そのため、go インストール後も、そのようにアプリを起動する必要があります。

$GOPATH/bin/<name of app>

ただし、インストール時には、go ファイルのみを参照します。したがって、アプリケーションが html、js、および css ファイルにアクセスできるようにする場合は、作業ディレクトリからアプリケーションを起動する必要があります。go-bind-data のようなパッケージを使用して、html、css、および js ファイルを実行可能ファイルに追加する方法があります。

https://github.com/jteeuwen/go-bindata

そうすれば、実行可能ファイルを移動するだけで、すべてのファイルがその中に含まれます。実際には、この実行可能ファイルをサーバーにコピーすると、そのまま動作するはずです。

これで少しすっきりすることを願っています。

于 2016-09-16T09:24:54.847 に答える