Django静态文件 - 无法找到嵌套文件

时间:2015-10-20 10:31:44

标签: django

它工作得非常好,但现在已经不多了。

我有以下文件结构,我试图找到以下文件:

[thisProject]
    ----blog
        ----static
            ----blog
                ----scss
                    ----slick.scss  [<---cant find this file]
            ----platform

我已尝试python manage.py findstatic slick.scss -v3

我收到以下内容:

Looking in the following locations:
  D:\git\thisProject\thisProject\env\lib\site-packages\django\contrib\admin\static
  D:\git\thisProject\thisProject\env\lib\site-packages\wagtail\wagtailadmin\static
  D:\git\thisProject\thisProject\env\lib\site-packages\wagtail\wagtaildocs\static
  D:\git\thisProject\thisProject\env\lib\site-packages\wagtail\wagtailsnippets\static
  D:\git\thisProject\thisProject\env\lib\site-packages\wagtail\wagtailusers\static
  D:\git\thisProject\thisProject\env\lib\site-packages\wagtail\wagtailimages\static
  D:\git\thisProject\thisProject\env\lib\site-packages\wagtail\wagtailembeds\static
  D:\git\thisProject\thisProject\env\lib\site-packages\wagtail\wagtailforms\static
  D:\git\thisProject\thisProject\blog\static
  D:\git\thisProject\thisProject\env\lib\site-packages\allauth\socialaccount\providers\facebook\static
  d:\home\yourusername\webapps\skunkworks_static_rockitt

如果你注意到底部的第3行 - 它正在查找正确的目录,但它仍然无法找到它。

我的设置如下:

STATICFILES_FINDERS = (
    'django.contrib.staticfiles.finders.FileSystemFinder',
    'django.contrib.staticfiles.finders.AppDirectoriesFinder',
    'compressor.finders.CompressorFinder',
)

INSTALLED_APPS = (


    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'django.contrib.humanize',
    more apps here,
)
DEBUG = True

为何无法找到此文件的任何想法?

1 个答案:

答案 0 :(得分:1)

Django不会查看应用程序静态目录的子目录,除非你告诉它:

python manage.py findstatic blog/scss/slick.scss

这是故意的,因此您可以通过在自己的应用程序中镜像其目录结构来覆盖核心模板。

顺便提一下,此命名空间是good idea generally

  

现在我们可以将我们的静态文件直接放在my_app / static /中(而不是创建另一个my_app子目录),但这实际上是个坏主意。 Django将使用它找到的名称匹配的第一个静态文件,如果在不同的应用程序中有一个具有相同名称的静态文件,Django将无法区分它们。我们需要能够将Django指向正确的,并且确保这一点的最简单方法是通过命名它们。也就是说,将这些静态文件放在为应用程序本身命名的另一个目录中。