iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Django debug为True时,css加载失败的解决方案
  • 619
分享到

Django debug为True时,css加载失败的解决方案

2024-04-02 19:04:59 619人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

Django上线后,需要把setting.py文件的debug=True改为False,以防暴露代码报错问题。 因为我项目用到CSS的地方只有admin管理员登陆这块,没有自定义的c

Django上线后,需要把setting.py文件的debug=True改为False,以防暴露代码报错问题。

因为我项目用到CSS的地方只有admin管理员登陆这块,没有自定义的css等,所以我的css文件夹名称定义成static

1.更改setting.py文件


STATIC_URL=‘/static/‘
STATIC_ROOT=os.path.join(BASE_DIR,'../static/')

STATIC_URL是css的加载路径,项目中如果用到了css的地方,会沿着该路径寻找这个路径下的css文件

STATIC_ROOT是存放所有的static文件,运行 python manage.py collectionstatic命令后,Python会自动检索项目所有的目录,把static文件夹拷贝到STATIC_ROOT目录下。在部署的时候会用到。

2.执行下述命令

将所有的所有app下(包括DjanGo自带的)static目录下的文件复制到STATIC_ROOT目录下


python manage.py collectionstatic

3.修改Nginx配置文件

添加下述代码到nginx配置文件中


location /static {
    alias /Users/admin/PythonProject/static;
    break;
    }  

server结果如下


server{
        listen 8011;
        server_name localhost;
        rewrite ^/$/ break;
        location /static {
            alias /Users/admin/PythonProject/static;
            break;
        }    
        location /{
            proxy_pass Http://127.0.0.1:8000;
        } 
} 

作用如下:当一个请求(例如,登陆请求 http://127.0.0.1:8011/admin/)通过nginx转发时,会首先到下面的location中,被转发到8000端口,调用Django项目中的admin登陆接口,登陆接口里面会请求两个css文件,分别是

http://127.0.0.1:8011/static/admin/css/login.css

http://127.0.0.1:8011/static/admin/css/base.css

这两个请求被上面的nginx配置中的第一个location匹配到,并且使用alias路径替换location路径,找到login.css文件和base.css文件。

(注意:location后面配置的路径,如果是以 / 结尾,那么匹配后的路径将不会带匹配中的字段,不带 / 结尾,将会带着匹配中的字段,详细的就不再赘述了)

这样,css文件就会被正确的加载上了。

补充:Django项目关闭debug模式后,静态文件无法加载的解决办法

近期在做OpenStack Horizon项目的相关开发,OpenStack的整体环境使用DevStack安装,horizon开发过程中直接使用命令:


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/static
Alias /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上最受欢迎的方法,确实简单快捷!

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。如有错误或未考虑完全的地方,望不吝赐教。

--结束END--

本文标题: Django debug为True时,css加载失败的解决方案

本文链接: https://www.lsjlt.com/news/124446.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Django debug为True时,css加载失败的解决方案
    django上线后,需要把setting.py文件的debug=True改为False,以防暴露代码报错问题。 因为我项目用到css的地方只有admin管理员登陆这块,没有自定义的c...
    99+
    2024-04-02
  • Django debug为True时,css加载失败怎么办
    这篇文章给大家分享的是有关Django debug为True时,css加载失败怎么办的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。django上线后,需要把setting.py文件的debug=True改为Fal...
    99+
    2023-06-14
  • css加载失败页面无法显示怎么解决
    1. 检查CSS文件路径是否正确:确保CSS文件的路径是正确的,如果路径错误,页面将无法找到CSS文件并加载它。2. 检查CSS文件...
    99+
    2023-06-13
    css加载失败 css
  • docker windows10 共享目录挂载失败的解决方案
    起因 在执行docker脚本的时候,出现不能创建容器的错误。 如下所示: Cannot create container for service xxx: b'Drive has ...
    99+
    2024-04-02
  • 解决jupyter加载文件失败的问题
    遇到个小白常见的问题,发现度娘里面没有记录,翻墙谷歌了下,解决问题,在此写个说明。 事情起因: 在jupyter notebook中导入文件时发生了错误: %load p2_te...
    99+
    2024-04-02
  • Java IDE路径加载失败的原因及解决方法
    Java IDE是Java程序员开发中常用的工具,但有时候在启动IDE时会遇到“路径加载失败”的问题,这会影响我们的开发效率。本文将分析Java IDE路径加载失败的原因,并提供解决方法。 一、Java IDE路径加载失败的原因 1.环境变...
    99+
    2023-07-23
    ide path load
  • php curl下载失败的解决方法
    这篇文章将为大家详细讲解有关php curl下载失败的解决方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。php curl下载失败的解决办法:首先打开相应的PHP文件;然后添加“curl_setopt(...
    99+
    2023-06-14
  • Go 接口文件加载失败?这些解决方案或许能帮到你
    Go 语言是一种快速、简洁、安全的编程语言,具有高效率和易于使用的特点。在 Go 中,接口是一种非常重要的概念,可以为程序员提供更好的灵活性和可扩展性。但是,在使用接口时,我们有时会遇到加载文件失败的问题。本文将介绍一些解决方案,帮助您解决...
    99+
    2023-09-02
    接口 文件 load
  • iPhone开发--Xcode15下载iOS 17.0.1 Simulator Runtime失败解决方案
    爆句粗口,升级后公司网络下载iOS 17.0.1 Simulator Runtime一直出错,每次出错后都得重新开始下载,oh,f**k。上一次在在家里的网络升级成功。 解决办法一: 进入网址:https://developer.apple...
    99+
    2023-12-23
    ios iphone cocoa
  • nginx.pid打开失败以及失效的解决方案
    目录一、问题描述二、问题出现分析三、解决方案方案1:创建目录方案2:重新指定一个配置文件方案3:修改默认的pid一、问题描述 在我们平常使用nginx的时候,经常有可能会发现我们的p...
    99+
    2024-04-02
  • Oracle空表导出失败的解决方案
    标题:解决Oracle空表导出失败的方法及代码示例 在Oracle数据库中,有时候会遇到需要将空表导出的情况。但是在实际操作过程中,可能会遇到空表导出失败的问题。本文将针对这一问题给出...
    99+
    2024-03-09
    解决方案 oracle 导出
  • SpringBoot JPA懒加载失效的解决方案(亲测有效)
    SpringBoot JPA懒加载失效 使用springBoot JPA 对两个实体类进行双向关联,并设置了懒加载,如下: 然后在查询后用到了roles,会报错, 解决办法如下:...
    99+
    2024-04-02
  • IDEA中Maven爆红,依赖下载失败的最全解决方案
    目录 1. 先排查Maven的配置信息是否正确 1.1 maven的settings.xml中的配置 1.2 idea中配置maven  2. 可能是网络卡顿原因,导致依赖下载失败,或者依赖下载不全,依赖包丢失 2.1 网络卡顿 2.2 m...
    99+
    2023-08-31
    intellij-idea maven java 后端
  • mysql添加用户失败的解决方法
    这篇文章主要介绍mysql添加用户失败的解决方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!mysql添加用户失败的解决办法:首先找到mysql安装目录下的bin文件夹;然后cmd...
    99+
    2024-04-02
  • PHP多设备登录失败的解决方案
    在日常的开发中,多设备登录是一种常见的需求。多设备登录的场合是指用户可以同时使用多台设备登录同一个账号,但是这样也会带来一些风险,如账号被恶意攻击等。在PHP开发中,如何解决多设备登录失败的问题?本文将会从以下几个方面进行讨论。1、了解多设...
    99+
    2023-05-14
    php
  • win11安装sqlserver失败的详细解决方案
    Win+R打开运行输入services.msc查看所有服务,停止所有与Sql Server有关的服务,如下: 打开控制面板-卸载sqlserver所有相关软件; 删除SQL Server相关注册表 1.找到HKEY_...
    99+
    2023-04-25
    安装sql server失败 sql server安装失败原因 sqlserver安装失败了怎么办
  • VC++ loadlibrary()加载三方dll失败, 返回错误码:126的解决方法
    方式一: 采用 LoadLibraryEx 若DLL不在调用方的同一目录下,可以用LoadLibrary(L"DLL绝对路径")加载。但若调用的DLL内部又调用另外一个DLL,此时调...
    99+
    2024-04-02
  • PHP7下载PDF文件失败的解决方法
    PHP7下载PDF文件失败的解决方法 在开发网站时,经常会遇到需要下载PDF文件的需求,然而在使用PHP7时,有时会遇到下载PDF文件失败的情况。本文将介绍一种解决这个问题的方法,并附...
    99+
    2024-02-29
    php 解决方法 pdf下载
  • springBoot整合Eureka启动失败的解决方案
    其实springBoot 整合Eureka 是比较简单 ,可是我发现很多人整合后会启动不了,我这里列出比较常见的报错的原因 报:A child container failed d...
    99+
    2024-04-02
  • SAS连接Oracle引擎失败的解决方案
    SAS连接Oracle引擎失败的解决方案 在SAS软件中,常常会使用Oracle数据库进行数据分析和处理。然而,有时候在连接Oracle数据库引擎时可能会出现失败的情况,这可能会给用户...
    99+
    2024-03-08
    解决方案 oracle sas sql语句
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作