2015-10-20 52 views
1

它工作得非常好,但沒有更多。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 

如果您注意到底部的第三行 - 它正在查看正確的目錄,但它仍然無法找到它。

我的設置如下:

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

Django會不會看在你的應用程序的靜態目錄的子目錄,除非你告訴它:

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

這是故意的,以便您可以通過在自己的應用程序中鏡像其目錄結構來覆蓋核心模板。

順便說一句,這個命名空間是一個good idea generally

現在我們也許可以直接把我們的靜態文件在程序my_app /靜態/(而不是創造另一個程序my_app子目錄)脫身,但它實際上是一個壞主意。 Django將使用它找到的名稱匹配的第一個靜態文件,並且如果在不同的應用程序中有相同名稱的靜態文件,Django將無法區分它們。我們需要能夠將Django指向正確的位置,並且最簡單的方法是通過命名它們來確保它是正確的。也就是說,通過將這些靜態文件放入爲應用程序本身命名的另一個目錄中。

+0

thanks @solarissmoke – AndrewO