首页 |  我的博客 |  查看该博主内容分类 | 

本地django项目,Bootstrap排版显示效果混乱,CSS样式不起作用原因分析及解决方案

原因分析:

Bootstrap只要正常引用了样式文件(可通过点击样式连接查看是否能打开),或者本地文件引用的情况下,要注意样式引用的地址是否正确,在django中常见原因是地址引用错误。

如下html的引用:

<!-- Bootstrap CSS-->
<link rel="stylesheet" href="https://www.jq22.com/jquery/bootstrap-4.2.1.css">
<!-- Font Awesome CSS-->
<link rel="stylesheet" href="https://www.jq22.com/jquery/font-awesome.4.7.0.css">
<!-- Fontastic Custom icon font-->
<link rel="stylesheet" href="../../static/css/fontastic.css">
<!-- Google fonts - Roboto -->
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,400,500,700">
<!-- jQuery Circle-->
<link rel="stylesheet" href="../../static/css/grasp_mobile_progress_circle-1.0.0.min.css">
<!-- Custom Scrollbar-->
<link rel="stylesheet" href="../../static/vendor/malihu-custom-scrollbar-plugin/jquery.mCustomScrollbar.css">
<!-- theme stylesheet-->
<link rel="stylesheet" href="../../static/css/style.default.css" id="theme-stylesheet">
<!-- Custom stylesheet - for your changes-->
<link rel="stylesheet" href="../../static/css/custom.css">
<!-- Favicon-->
<link rel="shortcut icon" href="../../static/img/favicon.ico">

解决方案:

在html头部导入static文件路径:{% load static %}

将所有的相对路径用django的static路径拼接:
...href="../../static/....xxx">
改成
...href="{% static "....xxx" %}">

如:
<link rel="stylesheet" href="../../static/css/fontastic.css">
改为:
<link rel="stylesheet" href="{% static "css/fontastic.css" %}">

注意:static在setting中要正确设置,一般为STATIC_URL = 'static/',代表会查找所有名称为static的文件夹下的静态文件。

本例所使用的目录结构:

├─static
│  ├─css
│  ├─data
│  ├─fonts
│  ├─icons-reference
│  │  └─fonts
│  ├─img
│  │  ├─brand
│  │  └─flags
│  │      └─16
│  ├─js
│  ├─vendor
│      ├─chart.js
│      ├─jquery-validation
│      ├─jquery.cookie
│      ├─malihu-custom-scrollbar-plugin
│      └─popper.js
│          ├─esm
│          ├─esm
│  └─jquery3.6.0.js

注意:DEBUG = True如果在开发环境,debug需设置为True,如果是False Django会认为已经在web服务器部署好了服务,不会接管静态文件,从而访问不到。

posted @ 2022-09-13 19:15  Z哎呀  阅读(1089)  评论(0编辑  收藏  举报
// let homeEle = document.querySelector('body') // homeEle.setAttribute('id', 'particles-js') // /* ---- particles.js config ---- */ // particlesJS("particles-js", { // "particles": { // "number": { // "value": 380, // "density": { // "enable": true, // "value_area": 800 // } // }, // "color": { // "value": "#ffffff" // }, // "shape": { // "type": "circle", // "stroke": { // "width": 0, // "color": "#000000" // }, // "polygon": { // "nb_sides": 5 // }, // "image": { // "src": "img/github.svg", // "width": 100, // "height": 100 // } // }, // "opacity": { // "value": 0.5, // "random": false, // "anim": { // "enable": false, // "speed": 1, // "opacity_min": 0.1, // "sync": false // } // }, // "size": { // "value": 3, // "random": true, // "anim": { // "enable": false, // "speed": 40, // "size_min": 0.1, // "sync": false // } // }, // "line_linked": { // "enable": true, // "distance": 150, // "color": "#ffffff", // "opacity": 0.4, // "width": 1 // }, // "move": { // "enable": true, // "speed": 6, // "direction": "none", // "random": false, // "straight": false, // "out_mode": "out", // "bounce": false, // "attract": { // "enable": false, // "rotateX": 600, // "rotateY": 1200 // } // } // }, // "interactivity": { // "detect_on": "canvas", // "events": { // "onhover": { // "enable": true, // "mode": "grab" // }, // "onclick": { // "enable": true, // "mode": "push" // }, // "resize": true // }, // "modes": { // "grab": { // "distance": 140, // "line_linked": { // "opacity": 1 // } // }, // "bubble": { // "distance": 400, // "size": 40, // "duration": 2, // "opacity": 8, // "speed": 3 // }, // "repulse": { // "distance": 200, // "duration": 0.4 // }, // "push": { // "particles_nb": 4 // }, // "remove": { // "particles_nb": 2 // } // } // }, // "retina_detect": true // }); // var count_particles, stats, update; // stats = new Stats; // stats.setMode(0); // stats.domElement.style.position = 'absolute'; // stats.domElement.style.left = '0px'; // stats.domElement.style.top = '0px'; // document.body.appendChild(stats.domElement); // count_particles = document.querySelector('.js-count-particles'); // update = function() { // stats.begin(); // stats.end(); // if (window.pJSDom[0].pJS.particles && window.pJSDom[0].pJS.particles.array) { // count_particles.innerText = window.pJSDom[0].pJS.particles.array.length; // } // requestAnimationFrame(update); // }; // requestAnimationFrame(update);