【问题标题】:Django 2 static filesDjango 2 静态文件
【发布时间】: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 以在项目根目录中的一个简单“静态”文件夹中简单地收集和服务器静态文件?

【问题讨论】:

    标签: django django-staticfiles


    【解决方案1】:

    您的问题令人费解。您显然需要定义 both STATIC_ROOT STATICFILES_DIRS;第二个是收集文件的位置,第一个是收集文件和提供文件的位置。

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

    【讨论】:

    • 哦,就是这样。我不需要在 dev 中运行 collectstatic ...谢谢!那就是我感到困惑。
    猜你喜欢
    • 2014-02-26
    • 2021-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-23
    • 2012-09-30
    相关资源
    最近更新 更多