1

我最近为我的应用程序从 Windows 转移到了树莓派。它至少加载了一次,但现在我无法再次加载静态文件。

如果我从 shell 以 sudo (或没有)运行 python 脚本,我得到所有静态文件的 404,动态链接仍然按预期工作。

如果我从 IDLE 以 'pi' 登录运行它,它工作正常。

相关代码:

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 回答