18910140161

django引入bootstrap,路径对的,就是不显示,哪里错了?

顺晟科技

2021-06-19 09:39:12

184

[图片] [图片] [图片]

其实,这个问题很简单。

STATIC_ROOT的名字不要和STATIC_URL一样,并且下面的STATICFILES_DIRS配置也有问题,找不到路径是正常。

而且,你的bootstrap的css都没有放到static下面的css文件夹中。

对于静态文件的三个配置项:

STATIC_URL:决定写url时的前缀,通常都定义为'/static/'。这个一般不用该STATIC_ROOT:生产环境(DEBUG=False)时,静态文件的放置目录,配合collecstatic命令使用。如果你当前是开发环境,那么这个配置处于无效状态STATICFILES_DIRS:开发环境下使用,生产环境下无效。它用于定义额外的静态文件放置目录。可以是列表或者元组形式,例子如下:STATICFILES_DIRS = [ os.path.join(BASE_DIR, 'all_statics'),]

最重要的是:STATIC_ROOT和STATICFILES_DIRS不能使用同样的目录。

配置好了后,你需要:

在模板文件中{% load static %}加载静态文件上下文,然后使用{% static xxx % }在开发环境中,使用python manage.py collectstatic 收集静态文件到STATIC_ROOT中。

所以,你的资料贴得不全,缺少模板中是如何引用的,是否处于开发环境,是否执行了collectstatic 命令等等。自己逐一比对吧。

最后建议系统地学习Django。而不是跟着网上不成体系的文章,遍地是坑,讲解不透彻和清楚。

推荐:

django 核心配置项 - 刘江的django教程

如果你的bootstrap是放在本地static目录了,你需要把static路径放到STATICFILES_DIRS里,可以参考:https://docs.djangoproject.com/en/3.1/ref/settings/#std:setting-STATICFILES_DIRS 这一节。

你的html template里面有加上这个没有:{% load static %}

另外也可以用cdn来加载bootstrap,比如在html中head中加上这句:<link href="https://cdn.jsdelivr.net/npm/bootstrap@4.5.3/dist/css/bootstrap.min.css" rel="stylesheet">

相关文章
我们已经准备好了,你呢?
2024我们与您携手共赢,为您的企业形象保驾护航