Django在openshift中提供媒体文件(用户上传的文件)

Apo*_*los 12 python django django-media openshift

我已经在openshift中成功部署了我的Django项目.但我需要能够提供用户上传的文件.我为此用户MEDIA_ROOT和MEDIA_URL.我在这里遵循了本教程,但没有任何反应.我不得不改变MEDIA_ROOT,因为我认为那是不正确的.所以我的MEDIA_ROOT看起来像

MEDIA_ROOT = os.path.join(os.environ.get('OPENSHIFT_DATA_DIR', ''),'media')
MEDIA_URL = '/media/'
Run Code Online (Sandbox Code Playgroud)

我在/ wsgi文件夹中添加了.htaccess,正如文章中所述

RewriteEngine On
RewriteRule ^application/media/(.+)$ /static/$1 [L]    
Run Code Online (Sandbox Code Playgroud)

并且创建了构建脚本,以便在文章中提到静态媒体的符号链接.

#!/bin/bash
if [ ! -d $OPENSHIFT_DATA_DIR/media ]; then
    mkdir $OPENSHIFT_DATA_DIR/media
fi

ln -sf $OPENSHIFT_DATA_DIR/media $OPENSHIFT_REPO_DIR/wsgi/static/media
Run Code Online (Sandbox Code Playgroud)

在我的urls.py中,我添加了

urlpatterns += static(settings.MEDIA_ROOT, document_root=settings.MEDIA_URL)
Run Code Online (Sandbox Code Playgroud)

但我仍然不能为他们服务.我也尝试不在urls.py中包含django静态方法,但结果相同.

在另一个教程中.htacces放在静态文件夹中.难道我做错了什么?

Apo*_*los 8

只是为了让其他人知道,我通过将RewriteRule添加媒体文件夹更改为规则的第二部分来解决我的问题,所以它变成了

RewriteEngine On
RewriteRule ^application/media/(.+)$ /static/media/$1 [L]  
Run Code Online (Sandbox Code Playgroud)

希望它能帮助别人.