-2

我正在使用 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

我不明白可能是什么问题。任何帮助都会非常棒!

4

2 回答 2

0

不要像字符串一样使用 STATICFILES_DIRS。

导入 os 并使用 sep 函数查找您的静态文件目录。这就是我的做法:

import os
STATIC_ROOT = ''
STATIC_URL = '/static/'
STATICFILES_DIRS = (
    os.sep.join([os.path.dirname(os.path.dirname(__file__)), 'static']),
)
于 2013-09-30T20:22:07.790 回答
0

我所做的并且真正帮助我的是:

  1. 转到 settings.py 并在文件末尾添加 --> STATICFILES_DIRS = [os.path.join(BASE_DIR, 'static')]。

  2. 转到模板文件夹中的基本 html 模板,并在 head 部分添加这两行(只需确保在静态中创建一个文件夹。在我的情况下,它是 css,如下所示,可能是不同的名称):

    一){% load static %} 二)<link rel="stylesheet" type= "text/css" href="{% static 'css/mystyle.css'%}">

于 2020-04-16T15:32:41.673 回答