生产中的媒体文件夹更改

时间:2015-07-23 10:14:38

标签: python django apache mod-wsgi

我正在开发一个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

是否知道生产中的内容正在改变目录?

提前致谢

1 个答案:

答案 0 :(得分:0)

配置See it on ideone.

# 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的路径。