我最近开始研究Django Bootstrap项目,它开始变得混乱。我安装了Django并创建了一个项目。通常,它可以正常工作,我可以从浏览器中显示应用程序。
但是,我想个性化模板并决定使用bootstrap4,这是一个非常酷的框架。我用这个命令“pip install django-bootstrap-static”安装了bootstrap。我知道我应该将我的静态文件包含在STATIC文件夹中并将其指定到settings.py,我做了,但我在第一时间找不到机器上的bootstrap4文件。
问题是,我在这个html文件中包含了库引用;
<link rel="stylesheet" href="{% static 'bootstrap/css/bootstrap.min.css' %}">
<script src="{% static 'bootstrap/js/jquery.min.js' %}"></script>
<script src="{% static 'bootstrap/js/bootstrap.min.js' %}"></script>
突然,它开始使用bootstrap,这意味着我的bootstrap元素就在那里!
但正如我所说,我没有指定引导程序文件,只有我指定的是应用程序下的STATIC文件夹。我后面找到的引导程序文件位于此文件夹“/usr/local/lib/python3.6/site-packages”下。
我想要包括SASS来个性化我的网站,但我不明白Django是如何处理这种情况的。你能告诉我这个吗?
由于
答案 0 :(得分:0)
让我们先来看看Django STATICFILES_FINDERS
的工作原理:
默认设置将查找存储在STATICFILES_DIRS设置(使用django.contrib.staticfiles.finders.FileSystemFinder)和每个应用程序的静态子目录中的文件(使用django.contrib.staticfiles.finders.AppDirectoriesFinder)。如果存在多个具有相同名称的文件,则将使用找到的第一个文件。
请注意搜索每个应用的静态子目录的行。
现在让我们看看django-bootstrap-static
的文件夹结构,我们看到两个主要文件夹bootstrap
和fontawesome
。如果您查看内部,它们只包含__init__.py
和名为static
的文件夹。
基本上,bootstrap
和fontawesome
都可以被视为Django应用(即与您使用python manage.py startapp
创建的应用类似)。通过将bootstrap
和fontawesome
添加到您的INSTALLED_APPS
中,您已将它们作为应用程序包含在您自己的Django项目中,而Django的STATICFILES_FINDERS
将会查看这些内容两个应用程序也可以查找名为static
的文件夹。因此,在这种情况下,它可以找到这些静态文件,并在您运行python manage.py collectstatic
时将其包含在内。
修改强>
我忘了回答有关SASS的部分。为此,我可能会使用像django-sass-processor
这样的库,并使用bootstrap
创建一个名为python manage.py startapp bootstrap
的应用程序,并在其中创建一个名为static
的文件夹。在static
文件夹中,我将创建我的SASS文件夹结构并执行必要的覆盖和个性化。
奖金:可以找到构建SASS项目的好方法here