我目前有两种文件静态文件和媒体文件。静态文件包含我的 css、js 和其他静态内容。媒体文件包含用户上传的内容。静态文件夹就在媒体文件夹旁边。现在在我部署的机器上。如果我设置DEBUG = False
我的静态文件就可以了,但是我的媒体内容永远不会显示。我得到一个404 not found
错误。我的问题是当 DEBUG = False 时如何在生产环境中显示媒体内容。使用 DEBUG=True 一切似乎都可以正常工作?我阅读了以下页面并尝试了这些东西。
1-尝试为静态媒体创建一个单独的文件夹,就像静态内容一样。
目前我的静态内容由collectstatic
命令管理。我在 webfaction 上使用 apache。static_content
当我运行./manage.py collectstatic
静态文件夹中的所有内容时,我调用了一个静态文件夹。我static_content
尝试创建另一个名为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'
这就是我的 urls.py 的样子
admin.autodiscover()
urlpatterns = [
....
]+ static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
我是否使用正确的方法创建一个单独的文件夹来管理我的媒体内容,就像我在 DEBUG=False 时的静态内容一样?如果是这样,那么为什么 collectstatic 命令将我的所有媒体内容转储到我static_content
的文件夹而不是static_media
文件夹中?此外,如果我在用户上传数据时使用静态文件夹来管理我的媒体内容,那么该数据将上传到media
或static_media
.