我正在开发一个Django网站,我有一个媒体文件夹,用户可以上传一些东西。这个文件夹在我的根文件夹中,当我在本地运行服务器(使用./manage.py运行服务器)时,它工作正常并将文件放在MyApp / media /
中问题是我有一个生产服务器Apache,网站通过mod_wsgi运行。我项目的文件夹位于/ var / www / MyApp /,它在/ var / www / media中创建我的媒体文件夹,而不是/ var / www / MyApp / media。
在我的设置中,我有
STATIC_URL = 'static/'
MEDIA_URL = 'media/'
我为上传文件创建路径的方式是:
def generate_path(self, filename):
url = "media/files/users/%s/%s" % (self.user.username, filename)
return url
是否知道生产中的内容正在改变目录?
提前致谢
答案 0 :(得分:0)
# Project root is intended to be used when building paths,
# e.g. ``os.path.join(PROJECT_ROOT, 'relative/path')``.
PROJECT_ROOT = os.path.abspath(os.path.dirname(__name__))
# Absolute path to the directory that will hold uploaded files.
#
# For more information on ``MEDIA_ROOT``, visit
# https://docs.djangoproject.com/en/1.8/ref/settings/#media-root
MEDIA_ROOT = os.path.join(PROJECT_ROOT, 'uploads/')
然后,使用MEDIA_ROOT
指定相对于MEDIA_ROOT
的路径。