開発

静的ファイルをテストで公開する時のメモ-Django 1.8


Djangoを使っていて、とりあえず、index.htmlだけテストで見えるようにしたいということがあるかと思います。

少なくとも私はありました。

これはそのときのメモです。あくまでテストで公開するだけで、本番環境では使えないのと、実際の運用の際にはディレクトリの構成は大きく変わるので、本当にお試し程度のものです。

環境は、AWS、Python 3.4.3、Django 1.8です。

Djangoのプロジェクトを作る

$ django-admin.py startproject projectname
$ cd projectname
$ python3 manage.py migrate
$ python3 manage.py createsuperuser
※python3の部分は、環境ごとに適宜変更してください。今回は、projectnameをstaticfile_openという名前で作成しています。

staticディレクトリを作る

staticディレクトリを作ります。
$ mkdir static
場所はDjangoのプロジェクトの直下です。
スクリーンショット 2015-05-03 16.21.41

Settings.pyを編集する

Settings.pyの# Static filesの部分を修正します。

# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/1.8/howto/static-files/

STATIC_URL = '/'

今回は単純にhttp://xxx.xx/index.htmlで表示させたいと思ったので、staticを/にしました。このあたりは好きに設定できます。

また、以下の行を追加します。

# Static files directory
STATICFILES_DIRS = (
os.path.join(BASE_DIR, "static"),
)

Djangoの起動

AWSの起動は、以下のようにしてます。環境によって適宜変更してください。
$ sudo python3 manage.py runserver ec2-xx-xx-xxx-xxx.ap-northeast-1.compute.amazonaws.com:8000

で、ブラウザでアクセスすればOKです。
https://ec2-xx-xx-xxx-xxx.ap-northeast-1.compute.amazonaws.com:8000/index.html

静的ファイルなので、普通にHTMLの構造ファイルをそのままアップロードすればそのまま見ることができます。

ちなみに、
STATIC_URL = ‘/static/’
とデフォルトのままだと、

https://ec2-xx-xx-xxx-xxx.ap-northeast-1.compute.amazonaws.com:8000/static/index.html

で表示されるようになります。

最後に、あくまでテストでお試しの方法で、Django本来の使い方とは異なるので注意してください。