2015-06-19 82 views
2

这是我的文件夹结构CSS中的自定义模板不会呈现为404和500页的Django 1.8

Music 
    -Music 
    -Feature 
      -static 
       -feature 
        core.css 
        -css 
         other css files 
        -js 
        -img 
      -templates 
       404.html 
       500.html 
       index.html 
       -feature 
        about.html 
        detail.html 
        template.html 
    manage.py 

views.py

from django.shortcuts import render 

def error404(request): 
    return render(request,'404.html') 

urls.py

urlpatterns = [ 

url(r'^featured/(?P<pk>[0-9]+)/$', views.DetailView.as_view(), name='detail'), 
url(r'^about/$', views.about, name='about'), 
url(r'^FAQ/$', views.faq, name='faq'), 
] 
handler404 = 'mysite.views.error404' 

定制的404.html文件得到渲染,但没有CSS。通常,CSS可以在其他页面上正常工作,但是当我设置012时检查settings.py中的自定义404错误页面,整个项目的css消失。有关文件夹结构或其他问题? 编辑:core.css是主要的css文件和other css files包含插件的css

+0

您的handler404和视图都没问题。但你不需要它们。只需要一个自定义的404模板就够了。 – allcaps

回答

1

这是关于提供静态文件。当你使用DEBUG = True时,然后django会关心他们,否则你的服务器应该这样做。调试模式下的Django使用这个view。从那里的警告:

此视图将只在DEBUG为True时才起作用。

这是因为这种观点是非常低效的,可能不安全。 这只适用于本地开发,不应该在生产中使用 。

您可以运行与--insecureoption您的服务器只是为了测试404错误,或者你可以explicilty该页面创建网址,以检查其造型:

使用--insecure选项强制服务静态文件与 staticfiles应用程序,即使DEBUG设置为False。通过使用这个你 承认的事实,这是非常低效的,可能 不安全。这仅适用于本地发展,不应该被 在生产中使用,并且只当staticfiles应用程序是在 项目的INSTALLED_APPS设置。 runserver --insecure不会 与CachedStaticFilesStorage一起使用。

1

你handler404和看法都还好。但你不需要它们。只需要一个自定义的404模板就够了。请参阅:https://docs.djangoproject.com/en/1.8/topics/http/views/#the-http404-exception

为了使用HTTP404例外发挥到极致,你应该 创建时,提出了一个404错误时显示的模板。这 模板应该叫404.html,位于 模板树的最高水平。

模板是在正确的位置。我认为问题在于提供静态文件。在您的浏览器中打开开发人员工具,查看哪些资源无法加载(控制台,网络或资源标签)。检查路径。 404源头部分是否有外部样式表链接? (元素标签或查看源代码)。

https://docs.djangoproject.com/en/1.8/howto/static-files/

相关问题