我正在使用Django 1.8。根据文档,它说在给定开发环境中的默认设置的情况下,您应该能够将以下目录用于模板/静态文件:
mysite/main/templates/main/template.html
mysite/main/static/main/style.css
使用模板我需要将os.path.join(BASE_DIR, 'main/templates')
添加到模板目录中。使用静态文件,我无法以任何方式找到它们。
文档似乎表明,在开发过程中,模板/静态加载器应该自动找到这些目录,然后是静态文件和模板文件,而不必在设置中定义目录。出于某种原因,他们不是。我确定我错过了一些小东西,但是我不能完全指责它。
感谢您的帮助。
编辑:
在我的视图中,我使用渲染快捷方式调用模板:
from django.shortcuts import render
def index(request):
data = {}
return render(request, 'main/index.html', data)
在我的模板文件中,我试图像这样调用我的静态文件:
{% load staticfiles %}
<html>
<head>
<title>Purple Cross</title>
<link rel="stylesheet" type="text/css" href="{% static main/css/style.css %}">
</head>
<body>
{% block content %}
{% endblock %}
</body>
</html>
编辑2:
main.urls.py:
from django.conf.urls import url
from . import views
from django.conf import settings
from django.conf.urls.static import static
urlpatterns = [
url(r'^$', views.index, name='index'),
] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
就设置文件而言,这是与静态文件(+已安装的应用程序)相关的唯一内容:
INSTALLED_APPS = (
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'main',
)
STATIC_URL = '/static/'
答案 0 :(得分:4)
您的模板中有拼写错误。您需要在文件目录href="{% static 'main/css/style.css' %}
{% load staticfiles %}
<html>
<head>
<title>Purple Cross</title>
<link rel="stylesheet" type="text/css" href="{% static 'main/css/style.css' %}">
</head>
<body>
{% block content %}
{% endblock %}
</body>
</html>