【问题标题】:Why is Django creating a "static" directory at run time?为什么 Django 在运行时创建一个“静态”目录?
【发布时间】:2015-05-13 03:42:41
【问题描述】:

我是 Django 新手。 我正在将 Django-Pipeline 与 Bower 一起使用。 I followed this documentation

这是我的 Django 项目的结构:

|- myProject
    |- manage.py
    |- bower.json
    |- bower_components
        |- jquery
        |- bootstrap
        |- ...
    |- myProject
        |- settings.py
        |- static // This is the folder that gets created
            |- jquery
            |- bootstrap
            |- ...
    |- myApp

Django 在 myProject 中创建“静态”目录是正常行为吗?如果我手动删除静态文件夹,它会在下一页刷新时自动创建。

我没有得到的是我已经使用 STATICFILES_DIRS 设置指定了在哪里查找静态文件。所以对我来说,Django(至少在开发环境中)将直接从我的凉亭组件文件夹中提供文件似乎是合乎逻辑的。

我错过了什么吗?

编辑:我没有运行 collectstatic。这个文件夹是在我刷新页面时创建的。

【问题讨论】:

  • STATICFILES_DIRS 设置从哪里选择文件。 STATIC_ROOT 设置放置它们的位置。我从来没有遇到过这种情况,但是,因为它是一个目标目录,所以如果它不存在,它就会被创建。
  • 在我的开发机器中它不会自动创建静态文件夹,只有当我手动运行manage.py collectstatic时。
  • 是的,就是这样。这似乎是合乎逻辑的,它也会对我产生影响。但我没有运行 collectstatic 所以这就是为什么我觉得它很奇怪......
  • 设置BEBUG=False时会出现Collectstatic,collectstatic的主要任务是将所有静态文件复制到静态根目录

标签: python django bower django-pipeline


【解决方案1】:

您的 PIPELINE 设置如何? 特别是 PIPELINE_JS 和 PIPELINE_CSS 的output_filename 设置?

因为我认为 django-pipeline 负责创建此类文件夹,同时编译和缩小源代码,而不是 django

【讨论】:

  • output_filename 如下所示:'output_filename': 'css/styles.css'。但是我没有运行 collectstatic,所以我认为这些不重要......?
【解决方案2】:

django-pipeline 默认收集静态来保存编译结果。 请参阅选项 PIPELINE_COLLECTOR_ENABLED 将其关闭(出现在 django-pipeline 版本 1.6.5 中)。但如果你使用的是 LESS 之类的东西,它可能会导致错误。

【讨论】:

    猜你喜欢
    • 2016-08-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-24
    • 1970-01-01
    • 2017-07-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多