【问题标题】:Problem with static files configurations - don't understand project/app staticfiles organization静态文件配置问题 - 不了解项目/应用程序静态文件组织
【发布时间】:2019-11-18 10:54:55
【问题描述】:

我已经开始开发一个 Django 项目,目前有 3 个应用程序(注册、监控和随机化) 我想为静态文件设置参数。 我正在使用 bootstrap 4.0,我目前只有一个用于粘性页脚的 css 文件 由于此 css 适用于项目的所有模板,因此我在项目的根目录下创建了一个静态文件夹:

-project
 - settings.py
 - monitor
 - randomization
 - registration
 - static
      - css
         - styles.css
      - images

在我的 settings.py 中

STATIC_URL = '/static/'
STATICFILES_DIRS = (
    os.path.join(BASE_DIR,'static'),
)
STATIC_ROOT = 'D:/Users/jl3/DevSpace/intenseTBM_eTool/static/'

我已经运行了命令集合但我有一个错误:

错误: ?: (staticfiles.E002) STATICFILES_DIRS 设置不应包含 STATIC_ROOT 设置。

如何为我的项目设置“全局”静态文件? 如何设置参数?

【问题讨论】:

    标签: django static


    【解决方案1】:

    嗯,错误很明显。

    此外,如果 STATIC_ROOT 与 STATICFILES_DIRS 中的相同,则无需在设置中进行设置。 STATICFILES_DIRS 是 Django 将在其中搜索其他静态文件的文件夹列表,以及安装的每个应用程序的每个静态文件夹。 STATIC_ROOT 是在 manage.py collectstatic 之后将存储每个静态文件的文件夹。

    【讨论】:

    • 补充一点:你不需要在你的开发环境中设置STATIC_ROOT。在您的生产环境中,您应该将STATIC_ROOT 设置为项目外部 的目录(即不在源代码控制存储库中),因为这是collectstatic 将放置所有静态文件的位置,包括那些来自 3rd 方包和 Django 包(例如 django 管理站点)。这是您将指向 nginx/apache 为您的文件提供服务的地方。
    • 好的,谢谢回复。我有这样的改变STATIC_URL = '/static/' STATICFILES_DIRS = ( os.path.join(BASE_DIR,'static'), ) STATIC_ROOT = 'D:/Users/jl3/DevSpace/static/'
    • 但我的 styles.css 未应用...[18/Nov/2019 13:58:01] "GET /static/css/styles.css HTTP/1.1" 404 2377
    • 您的 css 文件是否在 /static/ 目录中?之前还尝试过另一个collectstatic?
    猜你喜欢
    • 1970-01-01
    • 2020-12-05
    • 1970-01-01
    • 2011-06-11
    • 2011-11-21
    • 2012-04-15
    • 2015-12-23
    • 2017-07-04
    • 2013-07-29
    相关资源
    最近更新 更多