Django静态文件URL,ROOT,DIR混淆

时间:2018-04-27 21:09:09

标签: python django static

我正在使用Django v1.11。在我设置的设置文件中

STATIC_URL = '/static/'

STATIC_ROOT = os.path.join(BASE_DIR, "e","static","static_root")

STATICFILES_DIRS = [
os.path.join(BASE_DIR, "e","static","static_dir"),
  ]

首先我将所有的css,js,img文件复制到static_dir文件夹中。然后我运行命令

   python manage.py collectstatic

将static_dir中的所有文件复制到static_root。我现在可以理解所有的css文件都应该从static_root加载。但是我可以看到css文件是从static_dir加载的。那么有人可以向我解释一下发生了什么吗?我为什么要使用static_root?我找不到任何static_root

的用法

1 个答案:

答案 0 :(得分:1)

可以找到整个解释there

STATIC_ROOT提供了一个便捷管理命令,用于在单个目录中收集静态文件,以便您可以轻松地为它们提供服务。当DEBUGFalse时,请在使用collectstatic之前设置其路径

除了在应用程序中使用静态/目录外,您还可以在设置文件中定义目录列表(STATICFILES_DIRS),Django也会在其中查找静态文件。例如:

STATICFILES_DIRS = [
    os.path.join(BASE_DIR, "static"),
    '/var/www/static/',
]