从提示运行时,静态文件出现未找到错误(404)



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

如果我以sudo(或不以sudo)的身份从shell运行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)

是什么原因导致了这个问题?我可以猜测这与权限有关,但我不知道该如何修复。

我不认为这是权限问题。(这将返回403。)这很可能是路径问题。

好消息是:修复它应该很简单。(著名的遗言)你应该选择

  1. 将绝对路径指定为static_fileroot参数,或者
  2. 在调用bottle.run之前,先将os.chdir()调用到静态文件根目录中

所以,这个:

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)

相关内容

最新更新