(springmvc)页面找不到静态资源文件Failed to load resource: the server responded with a status of 404 (Not Found)-程序员宅基地

技术标签: java  调试  静态资源文件 页面  jsp  java springmvc  

 

今天打算整理之前写的一个插件功能上传到github,新建一个java项目,项目使用的是spring mvc框架,然后再调试页面的时候发现找不到静态资源文件,如下图所示:

 

于是我第一时间检查jsp上页面资源的路径:

<link rel="stylesheet" type="text/css" href="css/amazeui.min.css">
	<link rel="stylesheet" type="text/css" href="css/amazeui.cropper.css">
	<link rel="stylesheet" type="text/css" href="css/custom_up_img.css">

经过确认,发现路径是没有错的:

 

朋友们可以参考我的文件路径的写法,如果确实是路径写错,那么可以把路径改过来就能解决问题了。

然后接着说我的问题,很显然,我这个不属于路径的问题,那么是什么原因导致页面找不到静态文件的呢?我最后看到了控制台输出了如下信息:

解读一下,即:在请求分发时,没有找到"/ScreenshotForUpload/css/amazeui.min.css"的映射(No mapping found for ...),于是我发现了问题所在。原来是spring mvc拦截了页面对静态资源的请求,但你的controller中又没有这个路径的映射,所以页面对静态资源文件的请求并没有正确下发,那么该怎么解决这个问题呢?下面我给出参考的方法:

解决方案:

1.采用<mvc:default-servlet-handler />。 在spring mvc的xml配置文件上加上一句:<mvc:default-servlet-handler />。如下图所示:

加入之后,spring mvc就会对进入DispatcherServlet的URL进行筛查,如果发现是静态资源的请求,就将该请求转由Web应用服务器默认的Servlet处理,如果不是静态资源的请求,才由DispatcherServlet继续处理。这个方法是最快捷的。

2.采用<mvc:resources />。可以使用<mvc:resources />,并将静态资源放在WEB-INF目录下(或者其他你喜欢的地方),然后在springMVC-servlet中添加如下配置:

<mvc:resources location="/文件路径" mapping="/映射路径"/>

根据实际情况填写路径。

3.在web.xml文件中将spring mvc的拦截路径改为/springmvc/*("springmvc"可以替换成你喜欢的路径),如下图所示

这样就可以将"对spring mvc的请求"和"对静态资源文件的请求"区分开了,不过有个缺点是,你的所有mvc请求都必须以"/springmvc"开头了。

由spring mvc引起的静态资源文件找不到的问题,可以说是比较隐秘的,新手可能被一时半会找不到问题的根源,希望本文可以给你提供帮助!


 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq9808/article/details/78528827

智能推荐

查看变量类型的python内置函数名是_Python-day05-20200722-函数查看-变量类型和不可变类型参数传递-递归函数-匿名函数-排序映射筛选器-内置函数摘要-一个函数作为另一个函数的返...-程序员宅基地

文章浏览阅读316次。P115# 函数的回顾总结# 1.函数的声明 def# 2.函数的格式 def 函数名(形式参数1,形式参数2....)# 3.函数的调用 函数名(实参1,实参2.....)# 4.函数返回值 使用return 语句返回函数的执行结果# 5.函数返回多个结果 将多个数据打包成一个整体返回# 可以使用字典和列表 通常用元组# 函数名字也是一个标识符# 由字母 数字 下划线 组成 不能以数字开头 ..._查看变量类型的python内置函数为

工作压力大,如何自我调节?_压力大怎么自我调节-程序员宅基地

文章浏览阅读4.4k次。工作压力对我们有很大的不良影响。我们能否消除现代工作生活所带来的压力?不——因为这不是一件绝对的坏事,所以我们不能消除。在生活中我们需要一定的压力。压力可以刺激我们采取一些行动,挑战我们自身的能力,帮助我们达到自己认为不可能达到的目标。问题就在于我们怎么处理、安排和缓解工作中的压力而不至于因为压力过大而垮掉。   缓解压力的四原则   1.用积极的态度面对压力。    _压力大怎么自我调节

Flowable工作流之Flowable UI画工作流程图-程序员宅基地

文章浏览阅读1.2w次,点赞6次,收藏65次。Flowable是一个用Java编写的轻量级业务流程引擎。Flowable流程引擎允许您部署BPMN 2.0流程定义(用于定义流程的行业XML标准)、创建这些流程定义的流程实例、运行查询、访问活动或历史流程实例和相关数据Flowable在将其添加到应用程序、服务、体系结构时非常灵活。您可以将引擎嵌入到您的应用程序或服务中,方法是包含Flowable库,该库作为JAR提供。因为它是一个JAR,所以可以很容易地将它添加到任何Javajavase;servlet容器,如Tomcat或javaee服务器,如。_flowable ui

scrapy 出现 [twisted.internet.error.TimeoutError:] 的几种解决方案_scrapy twisted报错-程序员宅基地

文章浏览阅读1.6k次。在使用 scapy 进行大批量爬取的时候,少数请求链接会出现请求超时,当出现请求超时时,爬虫会自动重试三次。扩展,可以 通过 设置 RETRY_ENABLED = False 来关闭重试机制若超过 180s 且三次后且还是没有得到数据,就会出现 twisted.internet.error.TimeoutError 错误。提供几种解决办法:1、降低同时请求的数量CONCURRENT_REQUESTS = 52、 增加超时时间DOWNLOAD_TIMEOUT = 20003、 增加重试次_scrapy twisted报错

bash 运行文件#!bin/bash_#!/bin/bash-程序员宅基地

文章浏览阅读1.7w次,点赞7次,收藏60次。【参考文献】【1】A5互联【2】Shell基本用法1 如何使用Chmod使Bash脚本可执行引用自参考文献【1】在本教程中,我将逐步介绍创建bash脚本并使用chmod命令使脚本可执行的步骤。之后,无需使用sh或bash命令就可以运行它。步骤1: 创建一个Bash文件首先是.sh使用以下命令创建带有扩展名的新文本文件。$ touch hello_script.sh步骤2: 编写示例脚本使用任何喜欢的编辑器打开新创建的文件,将以下bash脚本添加到文件中。$ vim hello_scr_#!/bin/bash

oracle12c 修改scn值6,Oracle 12c SCN推进方法汇总(一)之GDB-程序员宅基地

文章浏览阅读223次。在数据库异常恢复中,经常需要修改数据库的 SCN 值,在 12C 之前,我们常用的方法有如下几个:1. oradebug poke 直接修改内存中的值;2. event 10015 来增加 scn 的值;3. _minimum_giga_scn 来增加 scn 的值;4. gdb/dbx 来直接修改内存中的值;5. 修改控制文件来修改 scn 的值;6. 修改数据文件头来修改 scn 的值;7. ..._orace12c scn

随便推点

基础乐理知识(教你认五线谱)_五线普二三四度是什么意思-程序员宅基地

文章浏览阅读1.2w次,点赞15次,收藏95次。基本乐理_五线普二三四度是什么意思

npm学习:安装、更新以及管理npm版本_to address issues that do not require attention, r-程序员宅基地

文章浏览阅读2w次,点赞12次,收藏109次。._to address issues that do not require attention, run: npm audit fix

嵌入式之NB-IoT开发与应用01【移动通信网络发展概述、NB-IoT应用案例、物联网生态系统-解决方案、智慧消防项目需求分析及系统设计】-程序员宅基地

文章浏览阅读5k次,点赞4次,收藏53次。P1 1.01-01 NB-IoT课程介绍(P1)NB-IoT是什么?NB-IoT能够干什么?1、移动通信网络发展概述移动通信网络-1G移动通信网络-2G移动通信网络-3G移动通信网络-4G移动通信网络-5G移动通信网络总结NB-IoT发展历程2、NB-IoT应用案例2.1、NB-IoT智慧水务解决方案2.2、NB-IoT智慧燃气解决方案2.3、NB-IoT智慧烟感解决方案2.4、NB-IoT智慧冷链解决方案2.5、NB-IoT智能停车解决方案

STM32F105 USB管脚Vbus的处理-程序员宅基地

文章浏览阅读3.7k次。源:STM32F105 USB管脚Vbus的处理 对于STM32F105/107来说,为了监测USB的连接问题,程序默认是通过Vbus管脚进行检查的。但是Vbus管脚和UART1的TXD复用,导致我们在使用UART1发送数据时候,USB重启的问题。为了解决这个问题,本人查了大量的资料和咨询了不太靠谱的STM32技术支持,一直没有得到解决的方法。 在STM32F105数据手册上是这..._stm32 usb_vbus

RISC-V IDE MounRiver Studio开发实战:TWEN32V RGB_mounriver_studio、-程序员宅基地

文章浏览阅读1.1k次,点赞2次,收藏3次。RISC-V IDE MounRiver Studio开发实战:TWEN32V RGB软件平台 Mounriver Studio,硬件平台TWENCH32V开发板。1、WS2812RGBRGB色彩模式是工业界的一种颜色标准,是通过对红、绿(G)、蓝(B)三个颜色通道的变化以及它们相互之间的叠加来得到各式各样的颜色的,RGB即是代表红、绿、蓝三个通道的颜色,这个标准几乎包括了人类视力所能感知的所有颜色,是运用最广的颜色系统之一。RGB的所谓“多少”就是指亮度,并使用整数来表示。通常情况下,RGB_mounriver_studio、

C++项目实践(银行管理系统)_已知有一个系统上对应有以下功能:1.查询账户,2.存款,3.取款,4.转账,5.修改密码,6.-程序员宅基地

文章浏览阅读3.6k次,点赞15次,收藏91次。C++项目实践系统功能描述:实现以下几个功能:1、查询。2、取款。3、存款。4、转账。5、修改密码。6、退出。由用户输入功能进行选择,使用switch多分支完成对应功能。_已知有一个系统上对应有以下功能:1.查询账户,2.存款,3.取款,4.转账,5.修改密码,6.

推荐文章

热门文章

相关标签