我遇到的问题是用户上传的内容没有显示在网页上。我有100%使用我的开发settings.py文件,但这不适用于我的实时网站。
几个笔记
以下是settings.py中的媒体设置:
MEDIA_URL = '/media/'
MEDIA_ROOT = '/home/jasonhoward/webapps/site_media/'
如果用户上传cat.jpg,我已确认它已成功保存到'/ home / jasonhoward / webapps / site_media /'
现在,当用户导航到他们的个人资料上的图片库时,应该出现的是猫的图像。相反,会出现断开的链接。根据Chrome Inspect工具,图片的地址为“/media/cat.jpg”。
对我来说,链接地址似乎正确,应该显示图像。这几乎就像文件路径是正确的,但系统出于某种原因限制了对该图像的访问。这可能吗?
我能想到的另一件事就是在urls.py主文件中,我有以下代码:
if settings.DEBUG:
urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
生产中的调试模式设置为False。我已经尝试删除'if settings.DEBUG'行,但这不会改变任何行为。
我应该提一下我的静态文件设置如下:
STATIC_URL = '/static/'
STATIC_ROOT = '/home/jasonhoward/webapps/site_static/'
STATICFILES_DIRS = (os.path.join(BASE_DIR, 'assets', 'our_static'),)
当我访问www.mysite.com/static/images/car.jpg时,汽车图像会在浏览器中加载。结果,我很困惑为什么媒体文件不起作用......
由于
答案 0 :(得分:0)
你真的不应该依赖于通过Django提供静态或媒体文件。相反,您应该配置您的http服务器(nginx,apache,lighttpd等)直接为它们提供服务。
答案 1 :(得分:0)
确保在主django应用的static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
文件中添加urls.py