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,所以我不确定你为什么要问这个。