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 静态文件的主要内容,如果未能解决你的问题,请参考以下文章

Django之静态文件配置

django中的静态文件管理

django静态文件处理

django -静态文件能加载进入,但是在页面上却显示不出来

Django 2 静态文件

查看.a 静态库中的.o文件