我检查了同样的问题并找到了一些提示但是没有一个有效。 在调试模式下,一切都像魅力一样。您可以使用www地址访问该文件,用户可以上传图片。 现在我关闭了调试,起初我只是在关闭调试的情况下使用调试设置。上传仍然有效但图片无法通过www(404错误)加载。然后我将其更改为实时设置,现在上传不起作用,media_root文件不通过www提供。
我检查了我的服务器并更改了写入读取的权限,没有帮助。
有关如何解决这个问题的想法吗?
settings.py debug:
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, "static_in_pro", "static_root")
STATICFILES_DIRS = (
os.path.join(BASE_DIR, "static_in_pro", "our_static"),
#'/var/www/static/',
)
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, "static_in_pro", "media_root")
settings.py live:
STATIC_URL = '/static/'
STATIC_ROOT = '/var/www/vhosts/bspotted1/app/static_in_pro/static_root/'
STATICFILES_DIRS = (
'/var/www/vhosts/bspotted1/app/static_in_pro/',
#'/var/www/static/',
)
MEDIA_URL = '/media/'
MEDIA_ROOT = '/var/www/vhosts/bspotted1/app/static_in_pro/media_root/'
urls.py:
urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
答案 0 :(得分:0)
您需要配置您的网络服务器以提供静态和媒体文件。
Django并不打算为他们服务。相反,Django只会引用STATIC_URL和MEDIA_URL前缀来查找/上传文件。
在调试模式下,运行一个Web守护程序来临时为服务器提供服务,这些文件不应该在生产中使用。