愚蠢的问题,但我无法弄明白,这太过分了。在django项目中,在同一目录中我有base_template.html和base_style.css。在子文件夹中我有search.html。
base_template.html
base_style.css
folder----
search.html
Search.html像这样扩展base_template.html
{% extends "base_template.html" %}
在 base_template.html 内导入 base_style.css
<!DOCTYPE html>
<html>
<head>
<title>{% block title %} Base template {% endblock %}</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" type="text/css" href="base_style.css">
<link rel="stylesheet" type="text/css" href="awesome_font.css">
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Lato">
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Montserrat">
<style>
{% block Additional_Styles %}
{% endblock %}
</style>
并且没有办法。 **已经尝试过:
./base_style.css
/base_style.css
base_style.css"/**
如果我替换
<link rel="stylesheet" type="text/css" href="base_style.css">
使用:
<link rel="stylesheet" href="https://www.w3schools.com/w3css/4/w3.css">
它有效,css加载。我必须提一下,我刚从链接下载了css,并没有做任何修改。
为什么导入不起作用?
修改
settings.py :
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR,'templates')],
....
STATIC_URL = '/static/'
PROJECT_DIR = os.path.dirname(os.path.abspath(__file__))
STATIC_ROOT = os.path.join(PROJECT_DIR, 'static')
所以base_template在MainDjangoApp \ templates
中答案 0 :(得分:2)
你应该将静态文件(.css,.js)放在应用程序内的静态文件夹中:
app
static
app
css
base_style.css
在你的模板中你应该使用
{% load static %}
<link rel="stylesheet" type="text/css" href="{% static 'app/css/base_style.css' %}">
你一定要在djangoproject网站上阅读Writing your first Django app, part 6和Managing static files (e.g. images, JavaScript, CSS)。
答案 1 :(得分:0)
一个解决方案就是在文档中更改base_style.css的文件夹,但是我将其添加到了settings.py并且我得到了它的工作。我的应用程序并不复杂,所以我不会纠结于文件中。
STATICFILES_DIRS = [
os.path.join(BASE_DIR, "templates"),
]