我目前有两种类型的文件都静态文件和媒体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