我知道这个问题已经被问过无数次了,但是不要问Django的静态文件处理。在prod中,我将部署在s3中,它已经工作得很好了。但是在dev(本地运行)中就没有那么多了。
问题一:
如果我将配置设置为:
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来简单地收集和服务项目根目录下一个简单的“静态”文件夹中的静态文件?
1条答案
按热度按时间2jcobegt1#
你的问题令人困惑。你显然需要定义 *
STATIC_ROOT
* 和 *STATICFILES_DIRS
;第二个是从哪里收集文件,第一个是从哪里收集和提供文件。无论如何,在开发中你不需要运行collectstatic,所以我不知道你为什么要问这个问题。