私は現在2種類のファイルを静的ファイルとメディアファイルにしています。静的ファイルには、私のCSS、メディアファイルには、ユーザーがアップロードするものが含まれています。静的フォルダは、メディアフォルダのすぐ隣にあります。 DEBUG = False
を設定すると、静的なファイルが表示されますが、メディアコンテンツは表示されません。 404 not found
エラーが発生します。 私の不満は、DEBUG = Falseの場合、プロダクション環境でメディアコンテンツを表示する方法です。 DEBUG = Trueではすべてがうまくいくようですか?私は以下のpageを読んで、これらのことを試しました。Djangoのメディアファイルは、生産時にDebug = Falseで表示されません - Django 1.10
1静的コンテンツと同じように静的メディアのための別個のフォルダを作成しようとしました。 現在、私の静的コンテンツはcollectstatic
コマンドで管理されています。私はを実行したときにstatic_content
と呼ばれる静的フォルダを持っています。静的フォルダ内のすべてのコンテンツはstatic_content
フォルダにコピーされました。static_media
という別の静的フォルダを作成しようとしました。しかし、./manage.py collectstatic
を実行したとき、私のmedia
フォルダの内容はstatic_content
にコピーされていて、それはstatic_media
にコピーされているはずです。だれでもcollectstaticコマンドがコンテンツをstatic_media
に貼り付けなかった理由を教えてもらえますか?
これは、これは私のurls.pyが、私はちょうど私のメディアコンテンツを管理するための別のフォルダを作成し、正しいアプローチを使用しています
admin.autodiscover()
urlpatterns = [
....
]+ static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
のように見えるものである
ALLOWED_HOSTS = [
"*",
'mywebsite.com',
'www.mywebsite.com.com',
]
STATIC_URL = 'http://mywebsite.com.com/static/'
STATIC_ROOT = '/home/admin/webapps/static_content'
STATICFILES_DIRS = (
'/home/admin/webapps/mainfolder/mainapp/static',
'/home/admin/webapps/mainfolder/mainapp/media',
)
PROJECT_PATH = os.path.join(BASE_DIR, 'static')
MEDIA_URL = 'http://mywebsite.com.com/media/'
MEDIA_ROOT = '/home/admin/webapps/static_media'
ように私の設定が見えるものですDEBUG = Falseのときの静的コンテンツのようなものですか?もしそうなら、どうしてcollectstaticコマンドは私のメディアコンテンツを
static_media
フォルダの代わりに
static_content
フォルダにダンプするのですか?また、ユーザーがデータをアップロードするときにメディアコンテンツを管理するために静的フォルダを使用する場合、アップロード先は
media
または
static_media
になります。
Django 1.7+では 'admin.autodiscover()'は必要ありませんので注意してください。 – Alasdair
ありがとうございます。私が使用していたDjangoのバージョンについて言及するためにgorgotのように見えます。私はちょうどそれを追加した。 – MistyD