2017-03-29 12 views
1

私のweb2pyアプリケーションは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)}} 

ファイル私はリンクをクリックしたとき

enter image description here

が存在する。しかし。それはここで

enter image description here

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

答えて

1

web2pyには、URLなどのオペレーティングシステムのファイルパスを指定してファイルを提供しないアプリケーションへのリンクである「何のファイル」と言いません。むしろ、ファイルをアプリケーションの/staticフォルダに置き(そしてそのフォルダに関連するURLを生成する)、またはコントローラ経由でファイルを提供する必要があります。

あなたが/staticフォルダのルートにファイルを配置した場合、リンクは次のようになります。あなたは/uploadsフォルダ(または他の場所)にファイルを残したい場合は

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

、あなたはそれを提供するコントローラを作成する必要があります。たとえば、次のように

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

とリンクは次のようになります。

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

/静的フォルダソリューションが動作します。 – ravenspoint

+0

したがって、response.streamソリューション – ravenspoint

関連する問題