我知道这已被问过一百万次了,但只是没有得到djangos静态文件处理。在prod中我将部署在s3中已经很好地工作了。但在开发中(本地运行)并没有那么多。
问题1: 如果我将配置设置为:
if ENVIRONMENT == "dev":
BASE_DIR = os.path.dirname(os.path.dirname(__file__))
STATIC_URL = '/static/'
STATICFILES_DIRS = [
os.path.join(BASE_DIR, 'static'),
]
由于以下错误,我无法运行collectstatic:
django.core.exceptions.ImproperlyConfigured:您正在使用staticfiles应用程序,而没有将STATIC_ROOT设置设置为文件系统路径。
好的,有道理,所以我将其配置为以下问题2:
if ENVIRONMENT == "dev":
BASE_DIR = os.path.dirname(os.path.dirname(__file__))
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
现在我可以运行collectstatic了。但是如果运行服务器,它将找不到静态文件:
“GET /static/css/bootstrap.min.css HTTP / 1.1”404
我没有得到:问题1可以服务于问题2收集的静态文件... 如何将Django 2配置为在项目根目录中的一个简单“静态”文件夹中简单地收集和服务静态文件?
答案 0 :(得分:1)
你的问题令人费解。您显然需要定义两个 STATIC_ROOT
和 STATICFILES_DIRS
;第二个是收集文件的地方,第一个是他们收集到的地方 - 并从中提供。
无论如何,在开发中你不需要运行collectstatic,所以我不确定你为什么要问这个。