我一直在关注this tutorial,现在在 / static / styles / 中有一个样式表。
问题在于模板没有选择这个:
<html>
<head>
<link rel="stylesheet" type="text/css" href="static/css/stylesheet.css" />
<title>Search</title>
</head>
<body>
...
我的设置文件中是否需要某些内容?我哪里错了?
我的项目结构是:
project
- manage.py
- project
- static
- templates
- __init__
- etc..
修改 我的urls.py现在看起来像这样:
from django.conf.urls import patterns, include, url
from bible import views
from django.contrib import admin
from django.conf.urls.static import static
from django.conf import settings
urlpatterns = patterns('',
# Examples:
# url(r'^$', 'bible.views.home', name='home'),
# url(r'^blog/', include('blog.urls')),
url(r'^admin/', include(admin.site.urls)),
url(r'^verses/', views.search),
) + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
这是我的view.py文件
from django.http import HttpResponse, Http404
from django.shortcuts import render
from bible.models import TBbe, TBookNames
def search(request):
errors = []
if 'b' in request.GET:
if 'c' in request.GET:
if 'v' in request.GET:
book = request.GET['b']
chapter = request.GET['c']
verse = request.GET['v']
verses = TBbe.objects.filter(b=book, c=chapter, v=verse)
book = TBookNames.objects.filter(id=book)
books = TBookNames.objects.all;
return render(request, 'verses.html', {'verses': verses, 'book': book, 'books': books})
else:
raise Http404()
else:
raise Http404()
else:
books = TBookNames.objects.all;
return render(request, 'search_verses.html', {'books': books})
答案 0 :(得分:4)
问题似乎是我在settings.py文件中需要以下代码:
STATICFILES_DIRS = (
os.path.join(os.path.dirname(__file__), 'static').replace('\\','/'),
)
与引用我的templates文件夹的代码相同。如果将静态文件放在同一级别,它应该可以工作。这也提供了你在这里遵循每个人的建议,导入静态等。
答案 1 :(得分:1)
答案 2 :(得分:0)
首先,您应该有一个前导斜杠:
href="/static/css/stylesheet.css"
但实际上你应该使用静态标签:
{% load static %}
...
href="{% static 'css/stylesheet.css' %}"
答案 3 :(得分:0)
您需要将以下行以及加载静态和静态规则以及调试模式为true添加到settings.py中。无需在urls.py文件中添加任何内容。 Django会自动在每个应用程序文件夹中找到静态文件夹。这是我从文档https://docs.djangoproject.com/en/2.0/ref/settings/#std:setting-STATICFILES_FINDERS中找到的。
for