我正在使用 Django、django-storages 和 S3 (boto) 以及简单的缩略图。在我的本地机器上,一切都按预期工作:如果缩略图不存在,它会被创建并上传到 S3 并保存在 easy-thumbnails 数据库表中。但问题是,当我将代码推送到生产服务器时,它不起作用,easy-thumbnails 输出一个空图像 SRC。
我已经注意到的是,当我在本地计算机上创建缩略图时,简单缩略图路径使用反斜杠,而我的 Linux 服务器需要正斜杠。如果我更改数据库中的斜线,缩略图会显示在我的 Linux 机器上,但它仍然无法在 Linux(生产)机器上生成缩略图。
简单的 django-storages 测试失败:
>>> import django
>>> from django.core.files.storage import default_storage
>>> file = default_storage.open('storage_test', 'w')
输出:django.core.exceptions.ImproperlyConfigured:请求设置 DEFAULT_FILE_STORAGE,但未配置设置。您必须在访问设置之前定义环境变量 DJANGO_SETTINGS_MODULE 或调用 settings.configure()。
如果我做:
>>> from base.settings import staging
>>> from django.conf import settings
>>> settings.configure(staging)
这有效(我有一个settings
包含 4 个设置文件的目录:base.py、staging.py、development.py 和 production.py)
似乎在我的生产服务器上,配置文件没有正确加载(但是网站的其余部分工作正常)。如果我添加THUMBNAIL_DEBUG = True
到我的设置文件中,但 easy-thumbnails 的调试仍然不起作用(它在我的本地机器上工作)。
有什么问题?我已经调试了 10 多个小时。