我正在使用twitter-bootstrap设计我的页面..我已经创建了一个 base.html 文件,该文件将成为我要扩展的所有模板的全局基本文件。
我的问题是当我为所有模板扩展 base.html 时。它不显示CSS而是以纯HTML格式显示所有内容。当我查看页面源时,javascript和CSS文件是可见的。 (这意味着这些文件已正确加载但未显示)
在 settings.py
中STATIC_URL = '/static/'
STATIC_ROOT = '/var/www/static/'
STATICFILES_DIRS = '/home/User/workspace/project/static'
我的项目结构如下:
-App1
-templates
- sample.html (which extends base.html)
-App2
-App3
-App4
-static
-css
-bootstrap.css
-js
-bootstrap.js
-jquery.js
-templates
-base.html
我不明白可能是什么问题。任何帮助都会非常棒!
答案 0 :(得分:0)
不要像字符串那样使用STATICFILES_DIRS。
导入操作系统并使用sep函数查找静态文件目录。这就是我的方式:
import os
STATIC_ROOT = ''
STATIC_URL = '/static/'
STATICFILES_DIRS = (
os.sep.join([os.path.dirname(os.path.dirname(__file__)), 'static']),
)
答案 1 :(得分:0)
我所做的并且对我真正有帮助的是:
转到settings.py并在文件末尾添加-> STATICFILES_DIRS = [os.path.join(BASE_DIR,'static')]。
转到您的templates文件夹中的基本html模板,并在开头部分添加这两行(只需确保以静态方式创建一个文件夹。就我而言,它是css,如下图所示,可以为其他名称):
a){% load static %}
b)<link rel="stylesheet" type= "text/css" href="{% static 'css/mystyle.css'%}">