Django / wsgi无法正确提供媒体文件

问题描述

我正在使用Django开发一个小型Web GIS应用,仅用于演示目的。

debug=True时,所有静态文件和媒体文件都可以正常工作,但是在生产环境中将debug设置为False并希望通过Web服务器提供静态文件和媒体文件时(apache) ,使用wsgi,在发送请求从媒体文件夹中提取.tiff文件的请求时得到404(但是文件在那里,我已经检查了一百万遍了)。

我知道从媒体文件夹和Django使用的同一服务器中提供.tiff文件不是一个好主意,我知道我应该为媒体和静态文件指定不同的服务器或使用AWS S3存储桶(这是一个未来的计划),但这只是一个演示/演示/ PoC应用程序,我想知道我做错了什么。

一种工作方案非常简单,我处理一些图像(geotiff),将它们本地存储在数据文件夹(在我的项目中定义为媒体文件夹)中,将路径保存在Postgresql数据库中,并在前端进行渲染。 / p>

就像我说的那样,debug=True时一切在生产中都可以正常工作,但是出于安全原因将其更改为False时,只有媒体文件不能正常工作(静态文件可以正常工作)。整个应用程序托管在Amazon EC2实例Ubuntu 18.04(已添加到允许的主机)上,并且我已使用

授予了data(媒体)文件夹的所有权限

sudo chmod -R 777 / var / DirectoryName (我知道非常绝望的尝试……还是?)。

Here是我的wsgi配置。

媒体根目录/ URL定义:

MEDIA_ROOT  = os.path.join(BASE_DIR,'data')
MEDIA_URL = '/data/'

添加到网址中

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

以及postgres中的路径示例:

data / User_test_user33 / Parcel_133_2020-11-03 / 20201103T095159_Parcel_133_2020-11-03 / indices / aoi_ndvi_20201103T095159_Parcel_133_2020-11-03_4326.tif

我已经阅读过类似的问答,但是这些解决方案并没有帮助我(或者我可能错过了什么?)。我真的可以使用一些帮助,因为我没有答案了。如果您需要更多详细信息,我们将很乐意提供。如果它很明显但我错过了,请不要苛刻:)

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...