Django 2静态文件

时间:2018-01-31 10:19:50

标签: django django-staticfiles

我知道这已被问过一百万次了,但只是没有得到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配置为在项目根目录中的一个简单“静态”文件夹中简单地收集和服务静态文件?

1 个答案:

答案 0 :(得分:1)

你的问题令人费解。您显然需要定义两个 STATIC_ROOT STATICFILES_DIRS;第二个是收集文件的地方,第一个是他们收集到的地方 - 并从中提供。

无论如何,在开发中你不需要运行collectstatic,所以我不确定你为什么要问这个。