Django 2 静态文件
Django 2 static files
我知道这已经被问了大约一百万次,但就是不了解 djangos 静态文件处理。在产品中,我将部署在 s3 中,它已经运行良好。但是在开发中(本地 运行ning)没那么多。
问题一:
如果我将配置设置为:
if ENVIRONMENT == "dev":
BASE_DIR = os.path.dirname(os.path.dirname(__file__))
STATIC_URL = '/static/'
STATICFILES_DIRS = [
os.path.join(BASE_DIR, 'static'),
]
我无法 运行 收集静态信息,因为出现以下错误:
django.core.exceptions.ImproperlyConfigured: You're using the staticfiles app without having set the STATIC_ROOT setting to a filesystem path.
好的,有道理,所以我将其配置为以下问题2:
if ENVIRONMENT == "dev":
BASE_DIR = os.path.dirname(os.path.dirname(__file__))
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
现在我可以 运行 收集静态信息。但是如果 运行 服务器将找不到静态文件:
"GET /static/css/bootstrap.min.css HTTP/1.1" 404
我不明白的是:问题 1 可以为问题 2 收集的静态文件提供服务器...
我如何配置 Django 2 以简单地在我的项目根目录中的一个简单 'static' 文件夹中收集和服务器静态文件?
你的问题令人费解。您显然需要定义 both STATIC_ROOT
and STATICFILES_DIRS
;第二个是收集文件的地方,第一个是收集文件和提供文件的地方。
无论如何,在开发中你不需要 运行 collectstatic,所以我不确定你为什么要问这个。
我知道这已经被问了大约一百万次,但就是不了解 djangos 静态文件处理。在产品中,我将部署在 s3 中,它已经运行良好。但是在开发中(本地 运行ning)没那么多。
问题一: 如果我将配置设置为:
if ENVIRONMENT == "dev":
BASE_DIR = os.path.dirname(os.path.dirname(__file__))
STATIC_URL = '/static/'
STATICFILES_DIRS = [
os.path.join(BASE_DIR, 'static'),
]
我无法 运行 收集静态信息,因为出现以下错误:
django.core.exceptions.ImproperlyConfigured: You're using the staticfiles app without having set the STATIC_ROOT setting to a filesystem path.
好的,有道理,所以我将其配置为以下问题2:
if ENVIRONMENT == "dev":
BASE_DIR = os.path.dirname(os.path.dirname(__file__))
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
现在我可以 运行 收集静态信息。但是如果 运行 服务器将找不到静态文件:
"GET /static/css/bootstrap.min.css HTTP/1.1" 404
我不明白的是:问题 1 可以为问题 2 收集的静态文件提供服务器... 我如何配置 Django 2 以简单地在我的项目根目录中的一个简单 'static' 文件夹中收集和服务器静态文件?
你的问题令人费解。您显然需要定义 both STATIC_ROOT
and STATICFILES_DIRS
;第二个是收集文件的地方,第一个是收集文件和提供文件的地方。
无论如何,在开发中你不需要 运行 collectstatic,所以我不确定你为什么要问这个。