我正在尝试设置一个站点范围的css文件。
如果我直接将 css 放在我的块内容中,我的 css 将呈现
cat register/templates/register/register.html
{% extends "base.html" %}
{% block title %}Create an Account{% endblock %}
{% load crispy_forms_tags %}
{% block content %}
<style>
.registration_base {
padding-top: 50px;
margin: auto;
width: 30%;
}
</style>
<div class="registration_base">
<form method="POST" class="form-group">
{% csrf_token %}
{{ form|crispy }}
<button type="submit" class="btn btn-success">Register</button>
</form>
</div>
{% endblock %}
它会正常工作,但我希望从我的 base.html 文件中的样式.css文件站点范围调用的代码。
我无法让 css 文件实际渲染。
在我的
templates/base.html
我有 更新:
$ cat templates/base.html
<!doctype html>
<html>
<head>
<title>Universal Trader</title>
{% load static %}
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous"></script>
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare
.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js" integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1" crossorigin="anonymous"></script>
<link rel="stylesheet" type="text/css" href={% static "/static/style.css" %}>
</head>
<body>
{% include 'navbar.html' %}
{% block content %}
replace me
{% endblock %}
</body>
</html>
在我的
register/static/style.css
我有相同的 css 代码:
.registration_base {
padding-top: 50px;
margin: auto;
width: 30%;
}
我可以跑
#python3 manage.py findstatic style.css
Found 'style.css' here:
/home/user/www/src/register/static/style.css
它找到了它,但我的 CSS 格式永远不会改变。
我安装了该应用程序
site/settings.py
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'pages',
'register.apps.RegisterConfig',
'crispy_forms',
]
更新 settings.py
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'static/')
更新了 NGINX/启用站点/站点静态信息。
server{
location /static {
alias /home/user/www/src/exchange/static; # your Django project's static files - amend as required
}
}
如何正确包含站点范围的 css 文件?
更新:
#cat register/forms.py
from django import forms
from django.contrib.auth.forms import UserCreationForm
from django.contrib.auth.models import User
class RegisterForm(UserCreationForm):
email = forms.EmailField()
class Meta:
model = User
fields = ["username", "password1", "password2", "email"]
和
#cat register/views.py
from django.shortcuts import render, redirect
from django.contrib.auth.forms import UserCreationForm
from .forms import RegisterForm
# Create your views here.
def register(response):
if response.method == "POST":
form = RegisterForm(response.POST)
if form.is_valid():
form.save()
return redirect("/")
else:
form = RegisterForm()
form = RegisterForm()
return render(response, "register/register.html",{"form":form})
更新:
我可以浏览网址
http://192.168.42.13:8080/static/style.css
很好,但我的基地.html不能,似乎
我重新启动了服务器。同样的问题。
再次更新:
甚至
<link rel="stylesheet" type="text/css" href={% static "http://192.168.42.13/static/style.css" %}>
基本失败.html
我建议使用"静态"标签,请参阅 https://docs.djangoproject.com/en/3.0/ref/templates/builtins/#static。然后.html您基地中的链接将是:
<link rel="stylesheet" type="text/css" href="{% static 'style.css' %}">
不要忘记在模板顶部加载标签:
{% load static %}
你可以在设置文件的 STATICFILES_DIRS 参数中指定 Django 在哪里查找静态文件,如下所示:
STATICFILES_DIRS = [
os.path.join(PROJECT_DIR, 'static'),
]
有关如何设置此项的详细信息,请参阅 https://docs.djangoproject.com/en/3.0/ref/settings/#staticfiles-dirs。