Trusty VMをDjango + Nginxでセットアップしました( (その他のもの も)。
サーバーは動作しています。 "Djangoへようこそ" ページが表示されます。しかし、servername/admin
に入ると HTMLページをロードします ですが、静的コンテンツをロードできません。
管理ページ 静的コンテンツへのリンクがあります:
<link rel="stylesheet" type="text/css" href="/static/admin/css/base.css" />
<link rel="stylesheet" type="text/css" href="/static/admin/css/login.css" />
Nginxログが示すように、CSSファイルは両方とも404を返します。
192.168.56.1 - - [05/Jun/2014:12:04:09 -0300] "GET /admin HTTP/1.1" 301 5 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:29.0) Gecko/20100101 Firefox/29.0"
192.168.56.1 - - [05/Jun/2014:12:04:09 -0300] "GET /admin/ HTTP/1.1" 200 833 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:29.0) Gecko/20100101 Firefox/29.0"
192.168.56.1 - - [05/Jun/2014:12:04:10 -0300] "GET /static/admin/css/base.css HTTP/1.1" 404 142 "http://ubuntu-server/admin/" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:29.0) Gecko/20100101 Firefox/29.0"
192.168.56.1 - - [05/Jun/2014:12:04:10 -0300] "GET /static/admin/css/login.css HTTP/1.1" 404 142 "http://ubuntu-server/admin/" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:29.0) Gecko/20100101 Firefox/29.0"
エラーは nginx.conf ファイルにあると思いますが、解決方法はわかりません。これはサイトツリーです。
主要ファイル: urls.py
、 settings.py
。
これは、おそらくDjangoまたはNginxの設定の問題です
確認したいことが2つあります。
静的ファイルはsettings.pyで正しく構成されていますか?基本的なDjangoページの場合、これらの設定は必要ありませんが、静的ファイルの場合は、静的ファイルを構成する必要があります。 Webサーバーが静的ファイルを提供するため、実稼働環境で使用する必要はありません。収集されていますか?設定したら、python manage.py collectstatic
を実行する必要があるかもしれません。
例えば、
#settings.py
INSTALLED_APPS += [Django.contrib.staticfiles,]
STATIC_URL = '/static/'
STATIC_ROOT = '/your_path/.../static/'
# This collects all files in /static/ directories and puts them in the static ROOT folder.
python manage.py collectstatic
Djangoはそれ自体で静的ファイルを提供しません(DEBUG=True
でsettings.py
を設定しない限り)。したがって、静的ファイルを提供するようにエンジンxに設定を追加する必要があります。 nginxを再起動するか、nginx.confの/ static /の構成にautoindex on;
を追加する必要があるかもしれません。
静的ファイルのデプロイ を参照してください。
開発では、設定だけでなく、(開発中の)/static/
urlをurls.pyに追加する必要があります。
同じ問題にぶつかり、nginxの設定を少し変更するだけで解決しました。
これは、静的ファイルを提供するための私のnginx設定でした:
location /static/ {
root /home/muqube/muqube_website/muqube/muqube_static_root/;
}
解決策は、次のようにroot
をalias
に置き換えることでした。
location /static/ {
alias /home/muqube/muqube_website/muqube/muqube_static_root/;
}
間違ったファイルパスがあると思います。サーバーが言っていることによると、管理フォルダーと静的フォルダーは同じパスにあります。
Linuxでは、/もルートパスです。ファイルがルートディレクトリにありません。
繰り返しますが、これが役立つことを願っています!