django关闭DEBUG后 static静态文件都访问不了

Django框架仅在开发模式下提供静态文件服务。当我开启DEBUG模式时,Django内置的服务器是提供静态文件的服务的,所以css等文件访问都没有问题,但是关闭DEBUG模式后,Django便不提供静态文件服务了。想一想这是符合Django的哲学的:这部分事情标准服务器都很擅长,就让服务器去做吧!

OK,解决问题的办法也就出现了,我最开始想到的就是,使用项目正式部署是所使用的配置,由apache提供静态文件服务。不过解决问题的方法远不止一种,在stackoverflow上我发现了更有趣的方法。现在把自己总结的四种方法列在下面,共大家参考:

1.将静态文件由apache提供文件服务(类似正式部署):

Alias /static/   /opt/path/static/

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://my.oschina.net/zyzzy/blog/173262

django关闭DEBUG后 static静态文件都访问不了,布布扣,bubuko.com

时间: 2024-12-25 05:27:01

django关闭DEBUG后 static静态文件都访问不了的相关文章

django关闭debug后,静态文件的处理

Django框架仅在开发模式下提供静态文件服务.当我开启DEBUG模式时,Django内置的服务器是提供静态文件的服务的,所以css等文件访问都没有问题,但是关闭DEBUG模式后,Django便不提供静态文件服务了. 1.使用django.views.static.serve()方法.在URLconf中添加: 编辑usrs.py,在最后添加如下代码: from django.conf import settings if settings.DEBUG is False: urlpatterns

django关闭debug后,报400错误

原文出处:https://stackoverflow.com/questions/19875789/django-gives-bad-request-400-when-debug-false 在Apache下部署django ,当关闭debug后,前台连接时,报 BAD REQUEST (400) 这个提示 找了一番,还是在stackoverflow上找到答案的,当关闭debug后,需要将 ALLOWED_HOSTS = ['*']可以匹配任意host访问

Django部署生产环境,静态文件不能访问404,以及图片不能访问403

部署环境的搭建请看此博客https://blog.csdn.net/anifans9350/article/details/80145535 查看nginx.conf 文件, nginx文件(etc/nginx/nginx.conf)配置: 修改http里面的server: server { listen 80; server_name localhost; #charset koi8-r; #access_log /var/log/nginx/host.access.log main; acc

Django2_MVC(MTV)模型、常用简单命令、项目目录文件说明及static静态文件

一.MVC.MTV模型著名的MVC模式:所谓MVC就是把web应用分为模型(M),控制器(C),视图(V)三层:他们之间以一种插件似的,松耦合的方式连接在一起.模型负责业务对象与数据库的对象(ORM),视图负责与用户的交互(页面),控制器(C)接受用户的输入调用模型和视图完成用户的请求.Django的MTV模式本质上与MVC模式没有什么差别,也是各组件之间为了保持松耦合关系,只是定义上有些许不同,Django的MTV分别代表:Model(模型):负责业务对象与数据库的对象(ORM)Templat

Thinkphp debug为true时页面能正常打开,关闭debug后,页面错误。

设置了thinkphp的路由功能,在全局配置文件common/conf/config.php下设置了 'URL_ROUTER_ON' => true, 'URL_ROUTE_RULES'=>array( 'news/:year/:month/:day' => array('Admin/Account/news', 'status=1'), 'news/:id' => 'Admin/Account/index', 'blog/:year\d|md5/[:month\d]'=>'

IIS开启伪静态后html静态页面无法访问的解决方法

IIS开启伪静态后,发现原本存在的html静态页面无法访问了,显示的404错误.网上查了下,是因为实现伪静态就是使用 URLRewriter 来映射后缀,会把asp等动态页面映射成html,但是原来存在的html静态页面也被定义的规则映射到其它页面了,所以找不到页面而无法访问. 有一个很简单的方法就是将html页面的后缀名改成htm,或者是把映射的规则改成映射为htm,总之就是把我们的伪静态页面和真正的静态页面分别用html和htm区分开来,但这只是治标不治本的方法. 最好的方法就是修改伪静态规

访问日志不记录静态文件、访问日志切割、静态元素过期时间

访问日志不记录静态文件 当访问很多图片,文档等静态资源的时候,会加大你日志的容量,日志容量占用你磁盘空间后,会出现服务器宕机等很严重的问题,这时需要将日志进行配置优化.当访问网页时不记录这些图片.css.js等信息日志. 1.[[email protected] 111.com]# vi /usr/local/apache2.4/conf/extra/httpd-vhosts.conf <VirtualHost *:80> DocumentRoot "/data/wwwroot/11

Django关掉Debug后站点无法加载static文件

方法一:在服务器上配置站点static文件夹的路径 在服务器apache2或nginx的站点配置文件中修改或添加static文件夹的路径,重启服务器后站点则能够正常访问静态资源了 方法二:改变django项目的运行方式 python manage.py runserver --insecure 如上所示,添加--insecure参数 原文地址:https://blog.51cto.com/14284354/2401100

Djanto static静态文件配置

django的settings中包含三个static相关设置项: STATIC_ROOT STATIC_URL STATICFILES_DIRS STATIC_URL 好理解,就是映射到静态文件的url,一般为/static/ STATICFILES_DIRS 是个列表,放各个app的static目录及公共的static目录 STATIC_ROOT 是总的static目录,可以使用命令自动收集static文件 假设有个工程djangodemo,有两个app为demo1跟demo2 django处