Django项目关闭debug模式后,静态文件无法加载的解决办法
来源:互联网 发布:网络科学导论 ppt下载 编辑:程序博客网 时间:2024/06/05 14:55
python manager.py runserver
开启内置服务器,由于项目中local_settings.py文件中的DEBUG=True,进行开发和调试一直没什么问题。
但是现在需要编写404,500等出错页面,在debug模式下出了错都会出现报错页面,无法转向到404或500页面,这时我将local_settings.py中的DEBUG设为false,这时候应该可以转向到404页面。实验证明确实如此,404和500页面都可以得到,但是出现了新的问题:css和js文件无法加载。
在网上找了找,很快就找到了问题的原因:Django框架仅在开发模式下提供静态文件服务。当我开启DEBUG模式时,Django内置的服务器是提供静态文件的服务的,所以css等文件访问都没有问题,但是关闭DEBUG模式后,Django便不提供静态文件服务了。想一想这是符合Django的哲学的:这部分事情标准服务器都很擅长,就让服务器去做吧!
OK,解决问题的办法也就出现了,我最开始想到的就是,使用项目正式部署是所使用的配置,由apache提供静态文件服务。不过解决问题的方法远不止一种,在stackoverflow上我发现了更有趣的方法。现在把自己总结的四种方法列在下面,共大家参考:
1.将静态文件由apache提供文件服务(类似正式部署):
编辑/etc/apache2/sites-available/horizon文件:
#Alias /media /opt/stack/horizon/openstack_dashboard/staticAlias /static /opt/stack/horizon/openstack_dashboard/static
建立静态文件链接: ln -sv /opt/stack/horizon/openstack_dashboard/static /opt/stack/horizon
重启apache: sudo service apache2 restart
2.使用django.views.static.serve()方法。在URLconf中添加:(r'^site_media/(?P<path>.*)$', 'django.views.static.serve',{'document_root': '/path/to/media'}),
官方文档中评价这种办法:“The big, fat disclaimer”。3.伪造404页面:使用正确的URL链接404页面模板;
4.改变项目运行方式:
python manage.py runserver --insecure
最后这种是stackoverflow上最受欢迎的方法,确实简单快捷!参考链接:http://stackoverflow.com/questions/5836674/why-does-debug-false-setting-make-my-django-static-files-access-fail
https://docs.djangoproject.com/en/1.2/howto/static-files/#limiting-use-to-debug-true
- 发表于 3年前
- 阅读 2893
- 收藏 6
- 点赞 1
- 评论 1
python manager.py runserver
开启内置服务器,由于项目中local_settings.py文件中的DEBUG=True,进行开发和调试一直没什么问题。
但是现在需要编写404,500等出错页面,在debug模式下出了错都会出现报错页面,无法转向到404或500页面,这时我将local_settings.py中的DEBUG设为false,这时候应该可以转向到404页面。实验证明确实如此,404和500页面都可以得到,但是出现了新的问题:css和js文件无法加载。
在网上找了找,很快就找到了问题的原因:Django框架仅在开发模式下提供静态文件服务。当我开启DEBUG模式时,Django内置的服务器是提供静态文件的服务的,所以css等文件访问都没有问题,但是关闭DEBUG模式后,Django便不提供静态文件服务了。想一想这是符合Django的哲学的:这部分事情标准服务器都很擅长,就让服务器去做吧!
OK,解决问题的办法也就出现了,我最开始想到的就是,使用项目正式部署是所使用的配置,由apache提供静态文件服务。不过解决问题的方法远不止一种,在stackoverflow上我发现了更有趣的方法。现在把自己总结的四种方法列在下面,共大家参考:
1.将静态文件由apache提供文件服务(类似正式部署):
编辑/etc/apache2/sites-available/horizon文件:
#Alias /media /opt/stack/horizon/openstack_dashboard/staticAlias /static /opt/stack/horizon/openstack_dashboard/static
建立静态文件链接: ln -sv /opt/stack/horizon/openstack_dashboard/static /opt/stack/horizon
重启apache: sudo service apache2 restart
2.使用django.views.static.serve()方法。在URLconf中添加:(r'^site_media/(?P<path>.*)$', 'django.views.static.serve',{'document_root': '/path/to/media'}),
官方文档中评价这种办法:“The big, fat disclaimer”。3.伪造404页面:使用正确的URL链接404页面模板;
4.改变项目运行方式:
python manage.py runserver --insecure
最后这种是stackoverflow上最受欢迎的方法,确实简单快捷!参考链接:http://stackoverflow.com/questions/5836674/why-does-debug-false-setting-make-my-django-static-files-access-fail
https://docs.djangoproject.com/en/1.2/howto/static-files/#limiting-use-to-debug-true
- Django项目关闭debug模式后,静态文件无法加载的解决办法
- Django项目关闭debug模式后,静态文件无法加载的解决办法
- django在关闭debug后,静态文件无法加载的解决办法
- Django 无法加载静态文件(js,css,image)解决办法
- Django -> debug模式下的静态文件服务(/media/)
- Django -> debug模式下的静态文件服务(/media/)
- Django关闭debug模式
- 在阿里云上部署Django应用后,页面403错误,始终无法加载静态文件的解决方案
- django debug对静态文件的影响
- win7安装django后django-admin.py无法创建项目的解决办法
- django设置debug=false后静态文件的处理问题
- django 加载静态文件
- django静态文件加载
- cmd无法创建Django项目的解决办法
- 执行django-admin.py startproject test后,无法创建项目的解决办法
- 【django】静态文件和template的加载
- django 静态文件的处理 DEBUG False 页面变乱
- 配置Django项目的静态文件路径
- Android基础控件——ViewPager实现带有动画的引导页
- Android开机速度优化简单回顾
- C语言练习题
- 端口映射: 数据包从源主机到达目标主机的过程
- 欢迎使用CSDN-markdown编辑器
- Django项目关闭debug模式后,静态文件无法加载的解决办法
- 简明python教程 第7章 函数
- Python新手,优酷VIP账号练手
- 微商公社新兵连第七天
- ORA-00099: warning: no parameter file specified for ASM instance
- 经典算法之—动态规划
- 欢迎使用CSDN-markdown编辑器
- struts2国际化Tips
- Web轻量级框架UIKit简介