我在 Heroku 上部署了一个简单的 Django 应用程序。当我运行collectstatic
将静态文件上传到 S3 时,出现以下错误:
回溯(最近一次通话最后): 文件“appname/manage.py”,第 11 行,在 execute_from_command_line(sys.argv) 文件“/app/.heroku/python/lib/python2.7/site-packages/django/core/management/__init__.py”,第 399 行,在 execute_from_command_line 实用程序.execute() 文件“/app/.heroku/python/lib/python2.7/site-packages/django/core/management/__init__.py”,第392行,在执行 self.fetch_command(子命令).run_from_argv(self.argv) 文件“/app/.heroku/python/lib/python2.7/site-packages/django/core/management/base.py”,第 242 行,在 run_from_argv self.execute(*args, **options.__dict__) 执行中的文件“/app/.heroku/python/lib/python2.7/site-packages/django/core/management/base.py”,第 285 行 输出 = self.handle(*args, **options) 文件“/app/.heroku/python/lib/python2.7/site-packages/django/core/management/base.py”,第 415 行,在句柄中 返回 self.handle_noargs(**options) 文件“/app/.heroku/python/lib/python2.7/site-packages/collectfast/management/commands/collectstatic.py”,第 135 行,在 handle_noargs 收集 = self.collect() 文件“/app/.heroku/python/lib/python2.7/site-packages/collectfast/management/commands/collectstatic.py”,第 33 行,在 collect ret = super(Command, self).collect(*args, **kwargs) 文件“/app/.heroku/python/lib/python2.7/site-packages/django/contrib/staticfiles/management/commands/collectstatic.py”,第111行,收集 处理程序(路径,前缀路径,存储) 文件“/app/.heroku/python/lib/python2.7/site-packages/collectfast/management/commands/collectstatic.py”,第 92 行,在 copy_file self.destroy_lookup(前缀路径) 文件“/app/.heroku/python/lib/python2.7/site-packages/collectfast/management/commands/collectstatic.py”,第 61 行,在 destroy_lookup cache.delete(self.get_cache_key(路径)) 文件“/app/.heroku/python/lib/python2.7/site-packages/django/core/cache/backends/memcached.py”,第 86 行,删除 self._cache.delete(key) _pylibmc.MemcachedError:来自 memcached_delete 的错误 47(:1:collectfast_asset_dc44a7965f7):服务器已失败并且已禁用,直到定时重试,主机:127.0.0.1:11211 -> libmemcached/connect.cc:592
在 heroku 上设置了以下环境变量:
BUILDPACK_URL: 数据库网址: DJANGO_AWS_ACCESS_KEY_ID: DJANGO_AWS_SECRET_ACCESS_KEY: DJANGO_AWS_STORAGE_BUCKET_NAME: DJANGO_CONFIGURATION: DJANGO_SECRET_KEY: HEROKU_POSTGRESQL_CRIMSON_URL: MEMCACHIER_密码: MEMCACHIER_SERVERS: MEMCACHIER_USERNAME: PGBACKUPS_URL: 发送GRID_PASSWORD: SENDGRID_USERNAME:
我已经为此苦苦挣扎了几天。昨天,我意识到其中一个 env 变量有一个拼写错误的重复项。删除拼写错误的 env 变量后,该collectstatic
命令运行良好,文件已上传到 S3。现在我正在使用另一个应用程序并且无法让它工作。
已存在同名的空 S3 存储桶。我已经尝试过用户特定和账户范围的 AWS 凭证,但都没有奏效。