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

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

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

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

Python

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

Q&A

解決済

2回答

735閲覧

django staticについて質問

chapin

総合スコア80

Django

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

Python

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

0グッド

0クリップ

投稿2019/04/02 16:26

staticとmediaの使い分けについて自分の認識を確認させてください。

staticとmediaでは同じ静的ファイルを扱う。staticはインスタンスに関連性がない静的ファイルを扱う。mediaはインスタンスと関連したファイルを扱う。
テンプレートの観点から見ると、mediaはインスタンスに関連したデータなので{{ object.image.url }}のような形で表記する。staticはインスタンスに関係がないファイルを扱うのでファイルのパスは動的である必要がない。だから{% static 'images/hoge.jpg' %}と書くようにファイルパスを固定して書く。もっと言えばstaticの場合は動的なパスを書くこともできない。

独学でやっておりますので、誤っていれば指摘していただけると助かります。
よろしくおねがいします。

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

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

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

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

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

guest

回答2

0

ベストアンサー

基本的にはご認識の通りかと思います。
あえて補足するならば、単純に固定したパスを書くだけのことならば、何も{% static 'images/hoge.jpg' %}と書くまでもなく'/static/images/hoge.jpg'でもいいということになってしまいます。
staticの仕組みはそれだけというよりは、settings.pyでstaticファイルの出力先を変えることができたり、collectstaticを使って共通モジュールとアプリ固有モジュールの構成を分けておくなど、構成管理面のメリットが大きいかなと思います。

staticファイルと言う仕組みがどういう意図によるものか、は以下の公式ドキュメントが参考になるかと思います。
https://docs.djangoproject.com/ja/2.1/howto/static-files/

投稿2019/04/03 02:20

mackerel6.023

総合スコア317

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

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

chapin

2019/04/03 14:44

ご回答ありがとうございます。 静的ファイルを配信する場合は必ず{% load static %}のような流れで書かないとファイルの表示等が出来ないと思っておりました。 また、構成管理面のメリットというのがピンと来ていないのでその側面からもう一度捉え直す必要があると感じました。 staticについてドキュメントを読んでいましたが、明確な理解が得られないままでした...。今回教えていただいた知識を頭の片隅に入れながらもう一度ドキュメントを読んでみると、より理解が深まるかもしれません。この度はご丁寧にありがとうございました!
guest

0

staticは画像、CSSとかJavaScript。mediaはユーザーがアップロードしたファイルの保存。
staticのファイルはS3とかCDNにホストしてもらうこともある。だからURLが別に設定できるようになっている。

投稿2019/04/02 23:38

編集2019/04/02 23:49
Kenji.Noguchi

総合スコア358

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

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

chapin

2019/04/03 14:49

ご回答ありがとうございます。 確かにmediaはcss,javescript,画像以外にも音声ファイルも対応できるようですね。知らなかったです。ありがとうございます。 また静的ファイルの配信形態?サーバーの構成にも有用ということですか。 その角度からもう一度理解を深めようと思います。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問