django-bower:找不到要由 BowerFinder 加载的静态文件



由于某种原因,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

现在,在运行服务器时,我得到一个未找到。

但是,当我制作STATICFILES_DIRS = ('/root/Desktop/django-DefectDojo/components/vendor/assets/bower_components/',)时,静态文件就会加载。但情况不应该是这样,因为BowerFinder应该这样做。

似乎这不是一次性实例。当 django-bowerfinders.py 无法在提供的 BOWER_COMPONENTS_ROOT 变量中找到bower_componentscomponents目录时,就会发生这种情况 - 这就是它所查找的。

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

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

反对:

-projectroot
    -components
        -bower_components
            -
            -

解决此问题的最简单方法是设置BOWER_COMPONENTS_ROOT = os.path.join(PROJECT_ROOT, 'componentsvendorsassets'),而不是只执行BOWER_COMPONENTS_ROOT = os.path.join(PROJECT_ROOT, 'components')

django-bower 的回购相关文章:https://github.com/nvbn/django-bower/issues/20

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

BOWER_COMPONENTS_ROOT = BASE_DIR

最新更新