您的位置:

解决方案:django ImproperlyConfigured("The staticfiles storage finder %r ""doesn't have a storage class ""assigned." % self.__class__)

  发布时间:2023-03-20 09:55:15
如何解决要解决这个错误,你需要在 Django 的设置文件中设置具体来说,你需要在 `settings.py` 中加入这样一行代码这样就会使用 Django 默认的文件存储系统来管理静态文件。首先,你需要在 Django 项目的设置文件中设置如下内容使用 AWS S存储静态文件的访问密钥和存储桶名称使用 https 协议访问静态文件然后,你还需要安装 `boto3` 库,在你的 Django 项目中执行下面的命令这样,你就可以使用 AWS S存储静态文件了。具体请参考 AWS S和 `storages` 库的文档。

报错的原因

这个错误的原因是你在 Django 的设置文件中(通常是 `settings.py`)没有为 `STATICFILES_STORAGE` 设置正确的值。`STATICFILES_STORAGE` 是一个字符串,指定了 Django 如何存储和管理静态文件。

举个例子,如果你想用 Django 默认的文件存储系统来管理静态文件,你需要在 `settings.py` 中设置 `STATICFILES_STORAGE` 为 `'django.contrib.staticfiles.storage.StaticFilesStorage'`。

如果你想用另一种方式来存储和管理静态文件,比如使用 AWS S3,你需要安装相应的第三方库(比如 `boto3`),然后在 `settings.py` 中设置 `STATICFILES_STORAGE` 为相应的存储类(比如 `'storages.backends.s3boto3.S3Boto3Storage'`)。

所以,如果你看到这个错误提示,你需要检查你的 `settings.py` 文件,确保 `STATICFILES_STORAGE` 设置正确。

如何解决

要解决这个错误,你需要在 Django 的设置文件中(通常是 `settings.py`)设置 `STATICFILES_STORAGE`。

具体来说,你需要在 `settings.py` 中加入这样一行代码:


STATICFILES_STORAGE = 'django.contrib.staticfiles.storage.StaticFilesStorage'

这样就会使用 Django 默认的文件存储系统来管理静态文件。

如果你想用另一种方式来存储和管理静态文件,比如使用 AWS S3,你需要安装相应的第三方库(比如 `boto3`),然后在 `settings.py` 中设置 `STATICFILES_STORAGE` 为相应的存储类(比如 `'storages.backends.s3boto3.S3Boto3Storage'`)。

需要注意的是,不同的存储后端可能需要的配置信息不同,所以你还需要设置其他的相关设置,比如 AWS S3 的访问密钥等。

所以,解决这个错误的关键就是确保在 `settings.py` 中正确设置 `STATICFILES_STORAGE`。

使用例子

下面是一个使用 AWS S3 存储静态文件的例子。首先,你需要在 Django 项目的设置文件(通常是 `settings.py`)中设置如下内容:


# 使用 AWS S3 存储静态文件
STATICFILES_STORAGE = 'storages.backends.s3boto3.S3Boto3Storage'

# AWS S3 的访问密钥和存储桶名称
AWS_ACCESS_KEY_ID = 'your-access-key-id'
AWS_SECRET_ACCESS_KEY = 'your-secret-access-key'
AWS_STORAGE_BUCKET_NAME = 'your-bucket-name'

# 使用 https 协议访问静态文件
AWS_S3_CUSTOM_DOMAIN = '%s.s3.amazonaws.com' % AWS_STORAGE_BUCKET_NAME
STATIC_URL = "https://%s/" % AWS_S3_CUSTOM_DOMAIN

然后,你还需要安装 `boto3` 库,在你的 Django 项目中执行下面的命令:


pip install boto3

这样,你就可以使用 AWS S3 存储静态文件了。

需要注意的是,这只是一个简单的例子,你可能需要根据你的实际情况设置其他的相关参数。具体请参考 AWS S3 和 `storages` 库的文档。