由于某种原因,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-bower
的 finders.py
无法在提供的 BOWER_COMPONENTS_ROOT
变量中找到bower_components
或components
目录时,就会发生这种情况 - 这就是它所查找的。
它无法执行此操作,因为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