我的 web2py 应用程序在 pythonanywhere 上找不到文件

My web2py application cannot find a file on pythonanywhere

我的 web2py 应用程序在 pythonanywhere 上找不到文件。

控制器:

def RA_download():
    import os
    path = os.path.join(request.folder,"uploads","ra.txt")
    return dict(path=path)

查看

<a href="{{=path}}" download>Download ra.txt</a>

{{=BEAUTIFY(response._vars)}}

文件存在

但是当我点击link。它说 "no file"

这里是link申请

http://speakertgorobots.pythonanywhere.com/MCEdit/default/RA_download

web2py 不通过将操作系统文件路径指定为 URL 来提供文件。相反,您必须将文件放在应用程序的 /static 文件夹中(并生成相对于该文件夹的 URL)或通过控制器提供文件。

如果将文件放在 /static 文件夹的根目录下,link 将如下所示:

<a href="{{=URL('static', 'ra.txt')}}" download>Download ra.txt</a>

如果您想将文件保留在 /uploads 文件夹(或其他某个位置)中,您需要创建一个控制器来为其提供服务。例如:

import os
def serve_ra_file():
    return response.stream(os.path.join(request.folder, 'ra.txt'), attachment=True)

而 link 将是:

<a href="{{=URL('default', 'serve_ra_file')}}" download>Download ra.txt</a>