【问题标题】:CSS not rendered in custom template for 404 and 500 pages django 1.8CSS 未在 404 和 500 页 django 1.8 的自定义模板中呈现
【发布时间】:2015-06-20 06:07:02
【问题描述】:

这是我的文件夹结构

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 在其他页面上工作正常但是当我设置debug=false以检查 settings.py 中的自定义 404 错误页面时,整个项目的 css 消失了.与文件夹结构或其他问题有关吗? 编辑:core.css 是主要的 css 文件,带有 other css files 的部分包含用于插件的 css

【问题讨论】:

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

标签: python django


【解决方案1】:

这是关于提供静态文件的。当您使用DEBUG = True 时,django 会处理它们,否则您的服务器应该这样做。调试模式下的 Django 使用这个view。来自那里的警告:

此视图仅在 DEBUG 为 True 时才有效。

这是因为这种观点非常低效,而且可能不安全。 这仅用于本地开发,切勿使用 正在生产中。

您可以使用 --insecure option 运行您的服务器来测试 404 错误,或者您可以为该页面显式创建 url 以检查其样式:

使用 --insecure 选项强制使用 静态文件应用程序,即使 DEBUG 设置为 False。通过使用这个你 承认它非常低效并且可能 不安全。这仅用于本地开发,绝不应该 在生产中使用,并且仅当静态文件应用程序位于 您项目的 INSTALLED_APPS 设置。 runserver --insecure 没有 使用 CachedStaticFilesStorage。

【讨论】:

    【解决方案2】:

    您的 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/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-12-27
      • 2015-03-14
      • 2017-02-20
      • 2020-04-24
      • 1970-01-01
      • 1970-01-01
      • 2019-10-27
      相关资源
      最近更新 更多