2017-12-29 45 views
1

私はDjangoの新機能ですので、これは私も考慮すべきではないと私に許してください。しかし、私のアプリが静的なHTMLページに多数リンクできるようにしたい各自へのURLパスを作成することは不合理になります)、アップロードされるファイルが増えています(FTP経由で私によって)。Djangoで静的なHTMLを提供する

これらのHTMLファイルへのパスを私のSTATICFILES_DIRS []に追加することで、開発サーバー上でこれを動作させることができましたが、私のコードをプロダクションにプッシュするとうまくいかないようです。

私はSTATIC_ROOTを設定してcollectstaticを実行しようとしましたが、それは助けにはならなかったし、私もそれが働いても新しいファイルをアップロードするたびにcollectstaticを実行しなければならないと心配しています。

私の質問は、これも合理的ですか?私はちょうど私のプロジェクトと一緒にこれらの静的なHTMLファイルをホストすることを避けて、別のドメインの下にある別のサーバー上に今どこに置いておくべきですか?

静的なHTMLファイルに加えて、私のDjangoアプリがデータを表示するSQL LITEデータベースがあります(これはアプリの目的全体です)。しかし、私は、SQL LITEファイルをftlibのように使用する別の方法を実装することができます。 Djangoに接続するためのデータベースはまったく必要ないことに注意してください。データを読み込むだけです。

答えて

0

すべてのページにURLを書き込む必要はありません。要求されたページ名をURLから「取得」し、その値に従ってページをレンダリングすることができます。上記

# urls.py 
url(r'^page/(?P<page_name>\w+)/$', my_view) 


# views.py 
import os 
from django.http import HttpResponse, Http404 

FTP_UPLOAD_DIR = '/path/to/directory/where/you/upload/files/' 


def my_view(request, page_name): 

    # check if requested page exists 
    if os.path.exists(FTP_UPLOAD_DIR + page_name): 
     # if yes, then serve the page 
     with open(FTP_UPLOAD_DIR + page_name) as f: 
      response = HttpResponse(f.read()) 
     return response 

    else: 
     raise Http404 

、我々は、アップロードフォルダから直接ファイルを読んでいるので、あなたはcollectstaticを実行するための必要はありません。

+1

すばらしい返信をいただきありがとうございます。あなたの解決策はうまくいきました.Django 2.0は私の最大のプログラミング恐怖(Regex)を避けるため、私は 'url'の代わりに 'path'を使い、組み込まれたパスコンバータを利用しました。あなたのコードは素晴らしい出発点でした。再度、感謝します! –