質問: reloader=True これはbottleがコードの編集を認識し再読み込みしてくれるオプション 付けない場合は、コードの反映にbottleの停止起動が必要になります。 参考サイト http://kitabatech.blogspot.com/2014/07/pythonbottle.html
回答: 詳細に関しては、やはりドキュメントを読んでもらうのが一番かと思うのですが・・。とりあえず順番に。 ``` @route('/static/') #1 def server_static(filename): #2 return static_file(filename, root='/path/to/your/static/files') #3 ``` の部分ですが、例えば質問に挙げておりますコードを実行した後に、ブラウザより や を開こうとすると、この `server_static()` 関数が呼ばれます。 つまり、ブラウザで指定した `http://アドレス:ポート番号` 以降の **url-path** の部分とその際に呼ばれる関数を結びつけている部分がこの **#1** の`@route(...)`の処理となります。 また上記からわかるように、この時に指定するPATHの指定では `<>`で囲った箇所(上記のコードでは ``)を **ワイルドカード**として扱います。 このワイルドカードの部分は、関数がコールされる時に引数として通知されます。 つまり上記の例では をコールすると、`server_static()`関数が呼ばれ、引数として `finename="hogehoge"` が与えられることになります。 更に、この**ワイルドカード** の部分はマッチする条件を指定することが出来まして、例えば `@route('/static/')` とすると``の箇所が**int型の数値** の場合以外マッチしなくなります。 今回は `@route('/static/')` と`:path` を指定しておりますが、これはサブディレクトリを含むPATHにもマッチするようにする為のものです。これにより例えば がコールされたときも`server_static()`関数が、引数 `finename="hogehoge/fugafuga"` で呼ばれるようになります。 最後に #3 の部分ですが、今回の場合は`root`に hello.py からの相対パスで `return static_file(filename, root='static/')` と記述しておき、 `filename="html/index.html"` が引数で渡るように のようにコールすると`index.html`が表示されるかと思います。