我目前有兩種類型的文件都靜態文件和媒體files.The靜態文件包含我的CSS,JS和其它靜態內容。媒體文件包含用戶上傳的內容。靜態文件夾緊鄰媒體文件夾。現在位於已部署的計算機上。如果我設置了DEBUG = False
,我的靜態文件顯示得很好,但是我的媒體內容從不顯示。我收到一個404 not found
錯誤。 我的問題是如何在DEBUG = False時在生產環境中顯示媒體內容。用DEBUG =真的一切似乎工作正常?我閱讀了以下page並嘗試了這些東西。與調試=生產假不顯示Django的媒體文件 - Django的1.10
1 - 嘗試創建靜態媒體就像靜態內容的單獨文件夾。 目前我的靜態內容由collectstatic
命令管理。我使用webfaction.I阿帕奇有一個靜態的文件夾,名爲static_content
當我跑./manage.py collectstatic
我所有的靜態文件夾中的內容被複制到static_content
folder.I嘗試創建另一個叫static_media
靜態文件夾。但是,當我運行./manage.py collectstatic
時,我的media
文件夾的內容被複制到static_content
而不是static_media
,因爲它應該有。誰能告訴我爲什麼collectstatic命令不會將內容粘貼到static_media
?
這是我的配置看起來像
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'
這就好比
admin.autodiscover()
urlpatterns = [
....
]+ static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
我在用正確的方法創造只是管理我的媒體內容的單獨的文件夾就是我urls.py外觀像DEBUG = False時的靜態內容一樣?如果是這樣,那麼爲什麼collectstatic命令會將我的所有媒體內容轉儲到我的static_content
文件夾而不是static_media
文件夾中?另外,如果我使用靜態文件夾來管理我的媒體內容,當用戶上傳數據將被上傳到media
或static_media
。
注意你不需要'admin.autodiscover()'在Django 1.7+ – Alasdair
感謝您指出了這一點。看起來像我是戈爾戈提到我使用的Django版本。我剛剛添加了它。 – MistyD