django 1.6.2:CSS 没有扩展到子模板

Posted

技术标签:

【中文标题】django 1.6.2:CSS 没有扩展到子模板【英文标题】:django 1.6.2 : CSS not extending to child templates 【发布时间】:2014-07-05 06:54:11 【问题描述】:

我对此有疑问。我非常感谢您的帮助。我的base.html 有一个% block content %% endblock %。我制作了一个如下所示的 Signup.html:

%extends 'base.html'%

% block content %
    <h1>Join now</h1>
        <form method='POST' action=''>% csrf_token%
            form.as_p    
            <input type='submit' class= 'btn btn-success btn-block'>
        </form>
% endblock %

base.html 有一些 css 链接在我启动 Signup.html 时可以正常工作。然后我创建了一个thankyou.html,它以与Signup.html 相同的方式扩展base.html

% extends "base.html" %
% load staticfiles %

    <!-- Bootstrap core CSS -->
    <link href="%static "css/bootstrap.min.css"  rel="stylesheet"%"/>

    <!-- Custom styles for this template -->
    <link href="%static "css/jumbotron.css" rel="stylesheet"%"/>

    <!-- Custom CSS -->
    <link href="%static "css/custom.css"  rel="stylesheet"%"/> 

% block side %

<h4>Thank you for joining!</h4>

% endblock %

但它没有显示任何 CSS,它是纯 HTML。

这里是urls.py

from django.conf.urls import patterns, include, url

from django.conf import settings
from django.conf.urls.static import static


from django.contrib import admin
admin.autodiscover()

urlpatterns = patterns('',
    # Examples:
    url(r'^$', 'signups.views.home', name='home'),

    # url(r'^blog/', include('blog.urls')),
    url(r'^thank-you/$', 'signups.views.thankyou', name='thankyou'),
    url(r'^admin/', include(admin.site.urls)),
)

if settings.DEBUG:
    urlpatterns += static(settings.STATIC_URL,
                          document_root= settings.STATIC_ROOT)
    urlpatterns += static(settings.MEDIA_URL,
                          document_root= settings.MEDIA_ROOT)  

我的views.py

from .forms import SignUpForm

def home(request):

    form = SignUpForm(request.POST or None)
    if form.is_valid():
        save_it = form.save(commit = False)
        save_it.save()
        messages.success(request, 'We will be in touch')
        return HttpResponseRedirect('/thank-you/')     #se agrega la pagina 'than-you' asi que hay
                                                    #que agregarla en -urls.py-    

    return render_to_response("signup.html",
                              locals(),
                              context_instance= RequestContext(request))

def thankyou(request):

    return render_to_response("thankyou.html",
                              locals(),
                              context_instance= RequestContext(request))

我的settings.py

STATIC_URL = '/static/'

#Template location

TEMPLATE_DIRS = (
    os.path.join(os.path.dirname(BASE_DIR),"static", "templates"),
   # '/Users/user/desktop/skillshare/static/templates',
)

if DEBUG:
    MEDIA_URL= '/media/'
    STATIC_ROOT= os.path.join(os.path.dirname(BASE_DIR),"static", "static-only")
    MEDIA_ROOT= os.path.join(os.path.dirname(BASE_DIR),"static", "media")
    STATICFILES_DIRS= (
        os.path.join(os.path.dirname(BASE_DIR),"static", "static"),
)

谢谢。

【问题讨论】:

【参考方案1】:

thankyou.html 中的 CSS 内容不在任何块中。如果您要扩展父模板,则子模板中的任何实际内容都必须位于父模板定义的块内。

【讨论】:

嗨。你能举个例子吗?对不起,我是这个 django 开发的新手。谢谢。

以上是关于django 1.6.2:CSS 没有扩展到子模板的主要内容,如果未能解决你的问题,请参考以下文章

将变量传递到扩展模板?

Django模板扩展不调用CSS

CSS DJANGO 和扩展模板

CSS 字体仅适用于从相同基础扩展的一些 Django 模板

如何通过按钮更改 Django 模板使用的 CSS?

如何在html文件中加载css文件已经在django中扩展了另一个html文件(base.html)