Django部署到服务器后无法获取到静态元素 The requested resource was not found on this server

这篇具有很好参考价值的文章主要介绍了Django部署到服务器后无法获取到静态元素 The requested resource was not found on this server。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

问题描述

写了一个Django项目,部署到云主机后,访问发现图片无法访问,报错The requested resource was not found on this server
图片是一个词云图,根据爬虫爬取的信息生成的,根据爬取的信息会改变,所以没有把图片放在nginx中,而是直接获取Django的图片

原因分析:

直接原因是因为发布到服务器,将DEBUG设置成False
the requested resource / was not found on this server.,问题大杂烩,django,服务器,python,后端,前端根本原因是,DEBUG模式下,Django本身相当于一个liveServer,默认可以加载静态元素,我们可以将静态元素放入一个目录,配置一个URL 就可以获取

代码:

# settings.py
STATIC_URL = "static/"
import os
STATIC_ROOT = (
    os.path.join(BASE_DIR, 'app1/static')
)
STATICFILES_DIRS = (
    # 收集静态元素,保存到项目同级别目录static下
    os.path.join(BASE_DIR, 'static'),
)

settings.py下三个配置项:
STATIC_URL 配置的请求静态元素的URL,默认是static,比如要访问1.png,访问地址就是http://xxx.xxx.xxx.xxx/static/1.png
STATIC_ROOT配置的静态元素的存放的路径,也就是1.png存放的路径。另外,当项目部署时,使用python manage.py collectstatic将所有静态元素保存在此路径
STATICFILES_DIRS这个配置不影响访问,可以理解是一个公共路径,可以将多个app的静态元素保存在这个路径,Django会优先查找此路径,再查找app下的STATIC_ROOT

当DEBUG=False时,可以Django只是一个后端服务器,不再提供静态元素展示,所以访问静态元素时就会报错The requested resource was not found on this server

解决方案:

将静态元素也通过url路由的方式暴露出来,通过路由方式访问
也就是Django提供的内置视图
官网:https://docs.djangoproject.com/zh-hans/4.1/ref/views/

# settings.py
STATIC_ROOT = (
    os.path.join(BASE_DIR, 'app1/static')
)

# urls.py
from django.urls import path, include, re_path
from django.conf import settings
from django.views.static import serve

urlpatterns = [
    path("admin/", admin.site.urls),
    path("largescreen/", include("carlargescreen.urls")),
    re_path(r'^images/(?P<path>.*)$', serve, {'document_root': settings.STATIC_ROOT }),
]

访问http://xxx.xxx.xxx.xxx/images/1.png ,就会访问到app1/static/1.png文章来源地址https://www.toymoban.com/news/detail-857091.html

到了这里,关于Django部署到服务器后无法获取到静态元素 The requested resource was not found on this server的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • django部署到centos服务器上

    步骤一 更新系统和安装依赖, 步骤二:创建并激活虚拟环境 在终端中执行以下命令: 可以不创建虚拟环境, 步骤三:安装Django和其他必需的库 在虚拟环境中执行以下命令: 步骤四:克隆项目源代码 使用git命令克隆Django项目源代码到合适的目录: 其实如果是本地的项目,

    2024年02月12日
    浏览(8)
  • 利用服务器上宝塔快速部署静态HTML页面

    利用服务器上宝塔快速部署静态HTML页面

    很多人都想知道怎么利用服务部署纯静态资源下面,下面给出教程: 1.购买腾讯云或者阿里云服务器,在服务上安装宝塔(较为简单,可以搜如何安装) 2.进入宝塔,点击左边网站,在点击添加站点 3.点击后弹出如图所示,域名填写自己购买的域名,如果没有则填服务器的

    2024年02月11日
    浏览(10)
  • Springboot 使用thymeleaf 服务器无法加载resources中的静态资源异常处理

    Springboot 使用thymeleaf 服务器无法加载resources中的静态资源异常处理

    Springboot使用thymeleaf,并 连接远程数据库 启动时,无法加载resources中的静态资源 浏览器报错 后端启动时报错 前端打开页面时后端报错 打包编译项目,显示找不到js、css、html等静态资源,但本地路径并没有写错,于是我去找编译文件,查看是不是静态资源没有编译到,打开项

    2024年02月04日
    浏览(12)
  • 云服务器下如何部署Django项目详细操作步骤

    云服务器下如何部署Django项目详细操作步骤

    前期本人完成了“编写你的第一个 Django 应用程序”,有了一个简单的项目代码,在本地window系统自测没问题了,接下来就想办法部署到服务器上,可以通过公网访问我们的Django项目。将开发机器上运行的开发版软件实际安装到服务器上进行长期运行,这是使用 Django 框架进行

    2024年02月09日
    浏览(8)
  • 阿里云服务器+宝塔 (尝试部署一个最简单的静态页面)

    阿里云服务器+宝塔 (尝试部署一个最简单的静态页面)

    进入网址:服务器购买地址 选择预装宝塔面板 购买完成后前往控制台 查看当前实例 设置或修改密码 设置用户名和密码 输入用户名和密码 连接成功页面如下: 请看客老爷移步到这个文章,传送门🙈 在命令行中输入: bt default 这里可以显示访问地址和密码,如图。 直接复

    2024年01月21日
    浏览(10)
  • Linux服务器远程访问通过Tomcat部署的静态资源

    Linux服务器远程访问通过Tomcat部署的静态资源

    1.1 安装Java 下载jdk8 切换到root用户,创建文件夹/usr/local/java,将下载的jdk压缩包上传到该目录下,解压 编辑配置文件,配置环境变量,在末尾添加如下内容 重载激活配置 检查安装成功 1.2 安装Tomcat 下载tomcat 切换到root用户,创建文件夹/usr/local/tomcat,将下载的tomcat压缩包上传

    2024年01月18日
    浏览(11)
  • windows2012部署的WSUS服务器无法连接微软服务器无法同步

    同步时,出现HTTP错误,详细信息如下: WebException: 基础连接已经关闭: 发送时发生错误。 --- System.IO.IOException: 无法从传输连接中读取数据: 远程主机强迫关闭了一个现有的连接。。 在 System.Web.Services.Protocols.WebClientProtocol.GetWebResponse(WebRequest request)    在 System.Web.Services.Protoc

    2024年02月08日
    浏览(13)
  • docker+django+ubuntu服务器 测试质量管理平台部署

    docker+django+ubuntu服务器 测试质量管理平台部署

      然后setting.py中增加服务器ip地址 0.0.0.0开放所有 其中setting.py注意 DEBUG = False 是False的话js和css的静态文件不会生效 在此注意一下!!!!!!! 2.拉取git的项目代码 构建成镜像 镜像run成容器 其中8888是容器内部的端口号,8886是对外开放的端口号  没有报错说明就是成功了 最后直接访

    2024年02月01日
    浏览(13)
  • Ubuntu纯净服务器系统使用Nginx+uwsgi部署django项目

    当前文章依赖最新的ubuntu-22.04.3-live-server-amd64服务器系统,python3-10版本,django为5.0版! 该服务器系统我们可以通过虚拟机来在本地安装,也可以使用云服务器,操作方式方法大同小异! 这里我们以开源项目baykeshop为基础来演示! 开源地址:baykeShop: baykeshop是一款python栈采用

    2024年01月17日
    浏览(30)
  • 将本地Django项目部署到服务器上(Ubuntu20.04)

    将本地Django项目部署到服务器上(Ubuntu20.04)

    最近因为项目的需求开始正在搭建一个个人网站。在本地完成了项目后端的内容后需要部署到服务器上以供用户访问。因为后端使用的是Django框架,就在网上找了很多有关将Django项目部署到网站上的教程。由于本人在网络这块属于小白,原理了解甚少,在一边参照各种教程一

    2024年02月03日
    浏览(10)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包