我想在我自定义的404/500页面上使用一些自定义CSS和图像。尽管Django在这些页面中不包含STATIC_URL变量。什么是实现这一目标的最佳方式?我也尝试制作一个自定义的404/500视图并渲染一个任意的HTML文件,但效果并不好。在Django的自定义404/500页面中使用静态文件
回答
这是我会怎么做:
# urls or settings
handler500 = 'mysite.views.server_error'
# views
from django.shortcuts import render
def server_error(request):
# one of the things ‘render’ does is add ‘STATIC_URL’ to
# the context, making it available from within the template.
response = render(request, '500.html')
response.status_code = 500
return response
值得一提的原因Django不默认情况下做到这一点:
“默认的500视图不会向500.html模板传递任何变量,并且会使用空的上下文进行渲染,以减少出现附加错误的几率。“
我相信你只需要重写默认的404/500错误处理。这应该让你开始:
http://docs.djangoproject.com/en/dev/topics/http/views/#customizing-error-views
上面提到的我已经这样做了.. – heri0n 2013-02-27 20:48:48
当您尝试在自定义视图中包含“{%load static from staticfiles%}”时会发生什么? – GordonsBeard 2013-02-27 20:59:15
我遇到了同样的问题,发现它不需要自定义模板或处理的解决方案。从Django 1.4开始,您可以使用标记get_media_prefix和get_static_prefix在不在上下文中时访问MEDIA_URL和STATIC_URL。
在我的特殊情况下(Django 1.5),我想访问我的页面500.html中的一些静态图像。我只是说在模板
{% load static %}
的开始,然后得到媒体和静态URL,这些标签
<img src="{% get_media_prefix %}logo.png">
<img src="{% get_static_prefix %}img/error_pages/error.png" style="height:235px;">
您可以在这里找到官方文档:我在我的问题https://docs.djangoproject.com/en/1.5/ref/templates/builtins/#get-static-prefix
- 1. Google App Engine自定义404页面用于静态文件
- 2. 在自定义页面上显示自定义静态块Magento
- 3. Django静态页面?
- 4. 在静态中使用非静态的自定义类void main
- 5. 在Django Admin页面上使用MooTools的自定义小部件
- 6. 使用nginx为自定义URL提供静态页面
- 7. 与Django静态文件的自定义HTTP标头
- 8. 使用来自静态页面的cookie
- 9. Django提供在CSS文件中定义的静态图像
- 10. 用于静态网站的appengine自定义404页面
- 11. 自定义Drupal模块中的静态HTML页面
- 12. Django自定义静态文件未收集到s3存储桶
- 13. 部分中的自定义联系表单和用于静态页面插件
- 14. JavaScript文件未加载在Django自定义管理页面
- 15. 使用静态文件的Cherrypy自定义调度程序
- 16. 谷歌自定义搜索 - 静态页面到WordPress(动态)
- 17. Django 1.3静态文件和使用自定义视图显示内容
- 18. Django的“静态”的文件 - 使用Javascript
- 19. 如何将Django动态页面转换为静态HTML文件?
- 20. Django - 如何在其他静态文件中使用静态文件
- 21. Django:从js静态文件目录中引用静态文件
- 22. 静态文本/图片文件中使用asp.net web页面
- 23. 静态页面的自定义模板未显示 - Wordpress
- 24. Django静态文件
- 25. 添加分页到Wordpress中的静态页面上的自定义循环
- 26. 自定义Django 404页面和Django调试页面
- 27. 在使用Joomla时从静态文件的文件夹中提供404页面
- 28. 仅使用宏在头文件中定义静态变量
- 29. 使用主页在页面上自定义控件的问题
- 30. 静态页面的Django站点地图
那么我将如何引用我的静态文件? – heri0n 2013-02-27 20:49:58
这会将“STATIC_URL”添加到模板的上下文中。所以你可以像平常一样使用它。 – Matt 2013-02-27 20:50:45