我是Django的新手,面临在django页面上渲染引导程序的问题。
这是我的基础html,
{% load staticfiles %}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags -->
<title>Dropbox Web App Prototype</title>
<!-- Bootstrap -->
<link href="{% static 'bootstrap/css/bootstrap.min.css' %}" rel="stylesheet">
<!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
<![endif]-->
</head>
<body>
<div class="jumbotron">
<h1>Hello, world!</h1>
<p>This is a template showcasing the optional theme stylesheet included in Bootstrap. Use it as a starting point to create something more unique by building on or modifying it.</p>
</div>
<!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<!-- Include all compiled plugins (below), or include individual files as needed -->
<script src="{% static 'bootstrap/js/bootstrap.min.js' %}"></script>
</body>
</html>
我还将以下行添加到我的settings.py文件
STATICFILES_DIRS = (os.path.join(BASE_DIR, "static"),)
CSS未在主页上呈现。任何帮助表示赞赏。
答案 0 :(得分:1)
BASE_DIR
默认定义为:
BASE_DIR = os.path.dirname(os.path.dirname(__file__))
此处__file__
实际上是settings.py
,因此BASE_DIR
位于父目录中,即包含manage.py
的目录。
您的static
文件夹似乎处于另一个级别,因此只需将其移至与manage.py
相同的级别即可。
答案 1 :(得分:0)
只需在您的设置中定义additioaly静态网址,如下面的某处:
STATIC_URL ='/ static /'
并再次检查是否提供了引导程序
答案 2 :(得分:0)
<强> CDN:强>
<link rel="stylesheet" type="text/css" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet" crossorigin="anonymous">
<强>静态强>
在django runserver的网址中:
if settings.DEBUG:
urlpatterns += [url(r'^static/(?P<path>.*)$', views.serve),]
从网络服务器运行时,您需要配置别名。 Nginx示例:
location /static {
alias /home/username/mysite/static;}
settings.py:
STATIC_URL = '/static/'
STATICFILES_DIRS = (os.path.join(BASE_DIR, "static"),)
答案 3 :(得分:0)
BASE_DIR to BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
答案 4 :(得分:0)
在html中 替换这个
<link href="{% static 'bootstrap/css/bootstrap.min.css' %}" rel="stylesheet">
用这个
<link href="/static/bootstrap/css/bootstrap.min.css" rel="stylesheet">
并检查这是否在设置中。
STATICFILES_DIRS = [
os.path.join(BASE_DIR, "static"),
]
答案 5 :(得分:0)
您使用的旧语法可能与您的Django版本不匹配。 在你的html文件中更改:
{% load staticfiles %}
到
{% load static %}
另外,用双引号替换单引号:
"{% static 'bootstrap/css/bootstrap.min.css' %}"
为:
"{% static "bootstrap/css/bootstrap.min.css" %}"
您可以看到处理静态文件的确切语法here