Django 1.9 推动我们的代码今天上线但有静态目录问题

Django 1.9 pushing our code to go live today but have static directory issue

我们正在推动我们的代码在今天上线,在此之前,我需要弄清楚将我的静态文件放在哪里。我在项目目录中有一个名为 static 的文件夹。在里面我有一个管理员和一个图像文件夹。在查看文档时,看起来这些不应该放在实际项目中。但应该在项目之外。这些是 运行 代码 python manage.py collectstatic 时 django 附带的文件。但是对于我在网站本身上使用过的 css,看起来我应该有另一个名为 static 的文件夹,以便将其全部放入。所以我的问题是:我的项目目录中是否应该有一个名为 static 的文件夹,其中我收藏了我的 css,我是否也应该拥有 collectstatic 文件夹,但放在别处?

我还被告知将我的 css 放在媒体目录中。这听起来不正确,我在 django 文档中找不到任何关于静态文件的内容。

基本上你要做的就是告诉 django STATICFILES_DIR 设置你所有静态文件夹所在的位置

STATICFILES_DIRS = [
    os.path.join(BASE_DIR, 'static'),
    os.path.join(BASE_DIR, 'mycssfolder'),
    os.path.join(BASE_DIR, 'otherstaticfolder')

]

所以当你 运行 djangoadmin collecstatic 命令时,它会在所有这些文件夹中查找静态文件。

您可以将静态文件存储在多个文件夹中,这些文件夹可以位于任何地方

它在设置中看起来像这样

STATICFILES_DIRS = (
    os.path.join(BASE_DIR, 'static'),
    #You can have multiple directories here
)

在设置中这样设置STATIC_ROOT

STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')

当你运行$ python manage.py collectstatic 这会将静态文件夹中的所有文件复制到 STATIC_ROOT 目录中。

这样做的目的是将所有静态文件收集到一个目录中,以便您可以轻松地提供它们。

**注

在设置中设置基本目录

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))