質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

3回答

324閲覧

[さくらのクラウドのパブリックIP]:8000にアクセスするとbootstrapが適用されていない

退会済みユーザー

退会済みユーザー

総合スコア0

Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2017/12/16 14:57

編集2017/12/20 14:03

https://qiita.com/melos/items/91dc3b45a589ea5a369b のURLを参考にして
「アプリを作成」のところまで設定しました。

ssh -i ~/.ssh/id_rsa ubuntu@さくらのクラウドのパブリックIP

コマンドにアクセスして、git cloneで動かしたいアプリケーションをダウンロードしてきました。
そして、

python manage.py runserver 0.0.0.0:8000

でサーバーを立ち上げ、

[さくらのクラウドのパブリックIP]:8000/アクセスしたいURL

とブラウザ上でアクセスするとGoogle Chrome のConsoleでbootstrap.min.jsなどがないbootstrapが適用されないWEBサイトが表示されます。
ローカルで動かしていた時はbootstrapがちゃんと適用されデザインがついていたのでなぜこうなってしまうのかわかりません。ディレクトリ構造も変更していません。
なぜこうなってしまい、どう直せば良いのでしょうか?

回答をもらった結果bootflatへのパスを確認しましたが、404エラーが出ました。
ディレクトリ構成は以下のようになっています。

-PythonServer -PythonServer -logic -templates -xxx.html -boolflat.github.io -bower_components

settings.pyには

import os BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) STATIC_URL = '/static/' STATICFILES_DIRS = [os.path.join(BASE_DIR,'bootflat.github.io'), ]

と書きました。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

djangoはdebug falseの時にstaticファイルの参照ができません。

python manage.py runserver --help を呼び出して
オプションを見てみましょう

[root@localhost test]# python manage.py runserver --help usage: manage.py runserver [-h] [--version] [-v {0,1,2,3}] [--settings SETTINGS] [--pythonpath PYTHONPATH] [--traceback] [--no-color] [--ipv6] [--nothreading] [--noreload] [--nostatic] [--insecure] [addrport] Starts a lightweight Web server for development and also serves static files. positional arguments: addrport Optional port number, or ipaddr:port optional arguments: -h, --help show this help message and exit --version show program's version number and exit -v {0,1,2,3}, --verbosity {0,1,2,3} Verbosity level; 0=minimal output, 1=normal output, 2=verbose output, 3=very verbose output --settings SETTINGS The Python path to a settings module, e.g. "myproject.settings.main". If this isn't provided, the DJANGO_SETTINGS_MODULE environment variable will be used. --pythonpath PYTHONPATH A directory to add to the Python path, e.g. "/home/djangoprojects/myproject". --traceback Raise on CommandError exceptions --no-color Don't colorize the command output. --ipv6, -6 Tells Django to use an IPv6 address. --nothreading Tells Django to NOT use threading. --noreload Tells Django to NOT use the auto-reloader. --nostatic Tells Django to NOT automatically serve static files at STATIC_URL. --insecure Allows serving static files even if DEBUG is False.

--insecure Allows serving static files even if DEBUG is False.
の項目を訳すと「DEBUGがFALSEでもstaticファイルの提供を許す」とあります。

つまり、解決策としては
DEBUG = True をsettingsファイルに記述
もしくは
python manage.py runserver 0.0.0.0:8000 --insecure と記述する方法があります。

投稿2017/12/19 07:56

編集2017/12/19 07:57
maki

総合スコア72

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2017/12/19 14:49

元からDEBUG = True と記載されていました。他にどういう原因が考えられるでしょうか?
maki

2017/12/20 02:37 編集

settings.pyにて、STATIC_ROOTとSTATIC_URLを指定していますか? STATIC_ROOTにstaticファイルの配置ディレクトリを指定 STATIC_URLにSTATIC_ROOTにて指定したディレクトリを読みに行くときのURLを指定しましょう 例 STATIC_ROOT = "/var/www/example.com/static/" STATIC_URL = "/static/" 以下のURLを参考にしてください。 https://docs.djangoproject.com/en/1.11/ref/settings/#static-files
退会済みユーザー

退会済みユーザー

2017/12/20 14:03

質問文を追加しました。STATICFILES_DIRS を使った書き方を元からしているのですが、間違っていますか?
guest

0

ベストアンサー

ブラウザでWEBサイトのHTMLソースを表示して、bootstrap.min.jsのパスが正しいか確認して下さい。
これらのファイルはブラウザからアクセス出来るURLに配置する必要があります。

投稿2017/12/19 05:26

hichon

総合スコア5737

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2017/12/19 14:53

ローカルでデザインが当てられて動いている時も、レンタルサーバー上でデザインが崩れて表示されている時も <link href="/static/css/bootstrap.min.css" rel="stylesheet"> <link rel="stylesheet" href="/static/accounts/login.css"> <link rel="stylesheet" href="/static/bootflat/css/bootflat.min.css"> とHTMLが表示されています。レンタルサーバーに置いたときに、” ブラウザからアクセス出来るURLに配置”できているかどうかはどう確認すれば良いでしょうか?
hichon

2017/12/20 02:26

実際のURLはサーバー名が補完されて以下のようになります。 http://<サーバー名>/static/bootflat/css/bootflat.min.css これをブラウザのアドレスバーにコピーしてファイルにアクセス出来るか確認して下さい。 「404: Not Found」になるなら、他の方が指摘しているようにstaticファイルのlocationが正しく設定されていません。
退会済みユーザー

退会済みユーザー

2017/12/20 13:52

http://<サーバー名>/static/bootflat/css/bootflat.min.cssにアクセスすると404: Not Foundのエラーが出ました。正しいstaticファイルのパスを設定したいのですがどのように確認できますか?質問文をアップデートしました。
guest

0

https://qiita.com/melos/items/91dc3b45a589ea5a369b

参考URLに書いてある通りのことを実施できていますか? 確認ポイントとしては

  1. nginx で static ファイルのlocationを適切に設定できているか
location /static { # ここのパスはあなたのDjangoプロジェクトの staticファイルがある場所を書く alias /path/to/your/mysite/static; # your Django project's static files - amend as required }
  1. collectstatic で staticファイルを集められているか
python manage.py collectstatic
  • このコマンドを実行したと時に、対象のディレクトリにstaticファイルが集められてますか?
  • そのディレクトリが上記nginxの設定で指定されていれば表示されるはずです。

投稿2017/12/17 16:41

tell_k

総合スコア2120

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2017/12/18 14:24

ありがとうございます。質問文に追加しました。python manage.py collectstaticがうまくいっているようなのにデザインが適用されません。もし何かお分かりでしたらお願いいたします。
tell_k

2017/12/22 12:38

nginx の 「alias /path/to/your/mysite/static;」 のパスは適切なものに書き換えて nginx を再起動してますか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問