1

最近、アプリを Windows からラズベリー pi に移行しました。少なくとも一度はロードされましたが、私の人生では、静的ファイルを再度ロードすることはできません。

シェルから sudo として (またはなしで) python スクリプトを実行すると、すべての静的ファイルに対して 404 が返されますが、動的リンクは引き続き期待どおりに機能します。

「pi」としてログインしてIDLEから実行すると、正常に動作します。

関連コード:

from bottle import route, run, get, request, static_file

    @get('/pumps')
    def pumpData():
        return json.dumps(pump.getPumps())

    # root dir
    @route('/<filename>')
    def server_static(filename):
        return static_file(filename, root='')

    # css dir
    @route('/css/<filename>')
    def server_static(filename):
        return static_file(filename, root='css')

    run(host='myip', port=2000, debug=True)

問題の原因は何ですか? アクセス許可と関係があると推測できますが、どうすれば修正できるかわかりません。

4

1 に答える 1

3

許可の問題ではないと思います。(これは 403 を返します。) パスの問題である可能性が最も高いです。

幸いなことに、修正は簡単です。(有名な最後の言葉。;)次のいずれかを行う必要があります

  1. rootへのパラメータとして絶対パスを指定するstatic_file、または
  2. を呼び出すos.chdir()前に、静的ファイル ルートを呼び出しますbottle.run

したがって、この:

return static_file(filename, root='/path/to/your/static/file/root')

またはこれ:

os.chdir('/path/to/your/static/file/root')
run(host='myip', port=2000, debug=True)
于 2013-08-11T23:58:27.607 に答える