gpt4 book ai didi

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

转载 作者:太空狗 更新时间:2023-10-29 17:47:44 25 4
gpt4 key购买 nike

我已经在 openshift 中成功部署了我的 Django 项目。但我需要能够提供用户上传的文件。我为此使用了 MEDIA_ROOT 和 MEDIA_URL。我关注了this教程在这里,但什么也没发生。我不得不更改 MEDIA_ROOT,因为我认为那个建议不正确。所以我的 MEDIA_ROOT 看起来像

MEDIA_ROOT = os.path.join(os.environ.get('OPENSHIFT_DATA_DIR', ''),'media')
MEDIA_URL = '/media/'

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

RewriteEngine On
RewriteRule ^application/media/(.+)$ /static/$1 [L]

并创建了构建脚本,如文章所述,以静态方式创建媒体的符号链接(symbolic link)。

#!/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

在我的 urls.py 中添加了

urlpatterns += static(settings.MEDIA_ROOT, document_root=settings.MEDIA_URL)

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

another教程 .htacces 放在静态文件夹中。我做错了什么吗?

最佳答案

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

RewriteEngine On
RewriteRule ^application/media/(.+)$ /static/media/$1 [L]

希望对其他人有帮助。

关于python - Django 在 openshift 中提供媒体文件(用户上传的文件),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23807969/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com