STATIC_ROOT和MEDIA_ROOT正确配置

时间:2016-02-23 13:36:19

标签: python django django-settings

我正在使用此STATIC_ROOT和MEDIA_ROOT配置:

STATIC_URL = '/static/'
STATICFILES_DIRS = (
    os.path.join(BASE_DIR, "static"),
)
STATIC_ROOT = os.path.join(BASE_DIR, 'wsgi', 'static')
MEDIA_ROOT = os.path.join(BASE_DIR, 'wsgi', 'static', 'media')
MEDIA_URL = '/media/'
MEDIA_DIR = os.path.join(BASE_DIR, "")

TEMPLATE_DIRS = (
    os.path.join(BASE_DIR, "templates"),
)

我正在使用这个模型:

class Picture(models.Model):
    image = models.ImageField(upload_to='media', verbose_name="Foto")

但图片上传到此文件夹:

/project_root/wsgi/static/media/media

当我尝试通过“Inspect element”查找图片时,会显示以下网址:

/media/media/picture.jpg

但正确的网址是:

media/wsgi/static/media/media/picture.jpg

你能帮我解决我做错的事吗?感谢。

修改

以上信息是我在本地运行的时候。这是部署数据:

Request URL:    http://phoebe-rogergonzalez.rhcloud.com/media/media/picture.jpg
"/var/lib/openshift/bunchofnumbers/app-root/runtime/repo/media/picture.jpg" doesn't exists.

另外,我正在使用OpenShift。

1 个答案:

答案 0 :(得分:1)

我通过更改MEDIA_URL来解决它:

MEDIA_URL = '/static/media/'

它现在完美无瑕。我希望这有助于其他人。