在我的settings.py文件中: -
DEBUG = False
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
STATIC_URL = '/static/'
LOGIN_URL = '/login/'
MEDIA_URL = '/media/'
Run Code Online (Sandbox Code Playgroud)
在我的urls.py文件中: -
urlpatterns += static(settings.STATIC_URL, document_root = settings.STATIC_ROOT)
urlpatterns += static(settings.MEDIA_URL, document_root = settings.MEDIA_ROOT)
Run Code Online (Sandbox Code Playgroud)
当我上传个人资料图片时,它会上传到指定的文件夹.但是当我访问用户个人资料网址时,我在终端中收到这样的错误
"GET /media/profile_images/a_34.jpg HTTP/1.1" 404 103
Run Code Online (Sandbox Code Playgroud)
a_34.png存在于/ media/profile_images /中
那为什么它没有在浏览器上显示,我收到404错误?
Django不是为了在生产环境中提供媒体文件.您必须直接从Web服务器进行配置.
例如
如果您在生产中使用Apache Web服务器,请将以下内容添加到您的虚拟主机配置中
Alias /media/ /path/to/media_file/
<Directory /path/to/media_file/>
Order deny,allow
Allow from all
</Directory>
Run Code Online (Sandbox Code Playgroud)
如果您使用Nginx,您将拥有类似的配置.