django-bower:未找到BowerFinder加载的静态文件

时间:2017-04-01 08:58:53

标签: django bower django-staticfiles static-files

由于某种原因,djangobower.finders.BowerFinder要加载的静态文件未加载(在服务器中找不到404)

settings.py

STATIC_ROOT = "/root/Desktop/django-DefectDojo/static/"

STATIC_URL = '/static/'

STATICFILES_DIRS = ()

STATICFILES_FINDERS = (
    'django.contrib.staticfiles.finders.FileSystemFinder',
    'django.contrib.staticfiles.finders.AppDirectoriesFinder',
    'djangobower.finders.BowerFinder',
)

BOWER_COMPONENTS_ROOT = '/root/Desktop/django-DefectDojo/components/'

BOWER_INSTALLED_APPS = (
    'jquery-ui',
)

INSTALLED_APPS = (
    'djangobower',
)

模板

<script src="{% static "jquery-ui/jquery-ui.min.js" %}"></script>

项目结构

-project root
    -static
    -components
        -vendor
            -assets
                -bower-components
                    -jquery-ui
                        -jquery-ui.min.js

我执行./manage.py bower install后跟./manage.py collectstatic

现在,在运行服务器时,我找到了一个N​​ot Found。

但是,当我创建STATICFILES_DIRS = ('/root/Desktop/django-DefectDojo/components/vendor/assets/bower_components/',)时,静态文件会被加载。 但事实并非如此,因为BowerFinder应该这样做。

2 个答案:

答案 0 :(得分:0)

似乎这不是一次性的例子。当django-bower的{​​{1}}无法找到所提供的finders.py变量中的bower_componentscomponents目录时,就会发生这种情况 - 这看起来就像它看起来一样对

无法执行此操作,因为BOWER_COMPONENTS_ROOT现在创建bower install目录,如下所示:

bower_components

反对:

-projectroot
    -components
        -vendors
            -assets
                -bower_components
                    -
                    -

解决此问题的最简单方法是设置-projectroot -components -bower_components - - ,而不仅仅是BOWER_COMPONENTS_ROOT = os.path.join(PROJECT_ROOT, 'components\vendors\assets')

来自BOWER_COMPONENTS_ROOT = os.path.join(PROJECT_ROOT, 'components')的回复的相关帖子: https://github.com/nvbn/django-bower/issues/20

答案 1 :(得分:0)

鲍尔直接在我的Django根目录中创建了bower_components。 因此,我只需要在settings.py中进行此操作:

BOWER_COMPONENTS_ROOT = BASE_DIR