Django 2 静态文件
Posted
技术标签:
【中文标题】Django 2 静态文件【英文标题】:Django 2 static files 【发布时间】:2018-07-10 10:02:24 【问题描述】:我知道这已经被问了一百万次了,但只是不要让 djangos 静态文件处理。在产品中,我将部署在 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 以在项目根目录中的一个简单“静态”文件夹中简单地收集和服务器静态文件?
【问题讨论】:
【参考方案1】:您的问题令人费解。您显然需要定义 both STATIC_ROOT
和 STATICFILES_DIRS
;第二个是收集文件的位置,第一个是收集文件和提供文件的位置。
无论如何,在 dev 中你不需要运行 collectstatic,所以我不确定你为什么要问这个。
【讨论】:
哦,就是这样。我不需要在 dev 中运行 collectstatic ...谢谢!那就是我感到困惑。以上是关于Django 2 静态文件的主要内容,如果未能解决你的问题,请参考以下文章