从提示符运行时,找不到静态文件的错误(404)

时间:2013-08-11 12:43:33

标签: python python-2.7 raspberry-pi bottle raspbian

我最近从我的应用程序移动到窗口到覆盆子pi。它至少加载了一次但现在在我的生命中我无法再次加载静态文件。

如果我从shell运行python脚本为sudo(或没有)我得到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)

可能导致此问题的原因是什么?我可以猜测它与权限有关,但我不知道如何修复它。

1 个答案:

答案 0 :(得分:3)

我不认为这是一个许可问题。 (这将返回403.)这很可能是路径问题。

好消息是:修复它应该是直截了当的。 (着名的遗言。;)你应该

  1. 将绝对路径指定为root的{​​{1}}参数,或
  2. 在致电static_file之前,先致电os.chdir()进入静态文件根目录。
  3. 所以,这个:

    bottle.run

    或者这个:

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