关于静态资源的加载

在IDEA中的java web application(或者maven项目)添加新的静态资源时(如html,jpg,gif等),常常会遇到静态资源无法加载的情况。这样的情况我们一般都会想到首先通过热部署或者重启tomcat服务器来加载资源。

但是,有些时候,无论我们的tomcat是否热部署或者不管怎么重启tomcat都无法访问这些资源(提示404找不到),然后就百思不得其解。这种时候可以尝试一下重启整个IDEA,重启之后或许就能够找到这些静态资源。

这可能是由于out目录(idea中的Excluded输出目录,默认为橘红色)中没有加载到这些资源,将需要加载的静态资源手动复制到对应的目录下就行了。这样就可以避免我们在添加静态资源时反复重启IDEA了。



当然上述内容是建立在静态资源没有放在不合适位置的前提下。

一般情况下,这些静态资源往往放置于与WEB-INF同一级的webapp或者WebRoot文件夹(或其子目录)>下,而不能放在WEB-INF目录中。

说到这里,咱就顺便介绍一下web项目中的WEB-INF目录

web项目中的WEB-INF目录

WEB-INF是Java web的安全目录,其中一般包含:

  1. /WEB-INF/web.xml : web应用的配置文件,描述servlet和其他应用组件配置及命名规则,相信大家如果配置过servlet对它一定不陌生。
  2. /WEB-INF/classes/ :该目录包含站点的class文件,包括 servlet class 和非servlet class。
  3. /WEB-INF/lib/ : 存放web application所需要的各种jar包,一般需要在IDEA的Project Structure的Modules中将这个目录添加到依赖。这个目录一般放置仅在这个web应用中用到的jar文件,例如数据库驱动jar文件(我们链接postgis数据库时就需要用到)。
  4. 由于WEB-INF目录是不对外开放的,外部没办法直接访问到(即不能通过URL访问)。只能通过映射来访问,比如映射为一个action或者servlet通过服务器端跳转来访问到具体的页面。这样,在WEB-INF目录中就可以存放一些不对外开放的页面,限制用户的访问,提高安全性。

关于IDEA中添加静态资源(html,jpg等)后找不到资源(404 not found),以及WEB-INF目录介绍的更多相关文章

  1. Qt中添加静态库.lb,.a和动态库.dll,.so,头文件和.cpp文件

    添加步骤 1.-Qt Creator中,"项目"------"添加库"2.把静态库和动态库文件放到项目文件夹中3.在.pro文件中会添加如下代码: - 添加动态 ...

  2. Django 项目中添加静态文件夹

    在 mysite 文件夹下添加一个 statics 文件夹用来存放 js 文件 在 index.html 文件中添加 <!DOCTYPE html> <html lang=" ...

  3. 一、SAP中添加一个模块到收藏夹后,显示事务代码

    一.在SAP中,如果添加一个模块到收藏夹,默认是看不到事务代码的,如图: 二.我们在附件->设置中勾选显示技术名称 三.保存之后,就会显示出事务代码,如图所示: 不忘初心,如果您认为这篇文章有价 ...

  4. vue打包后找不到资源路径问题

    问题描述: 使用webpack打包vue项目后,前后端联调无法找到资源 解决方案: 一. 改为相对路径,去除axios中地址的第一个“/” onProxyReq: function (proxyReq ...

  5. 类中添加log4j日志

    在编写代码的时候需要随时查看工作日志,查看工作日志的好处就是随时能检查出错误.所以我一般就需要在编写代码的前期添加工作日志,以便更好的查看相关错误输出. 以一个springmvc小demo为例子  主 ...

  6. SharePoint Framework 向web部件中添加外部库

    博客地址:http://blog.csdn.net/FoxDave 在进行开发的时候,你很可能会想要引用一些公开的JavaScript库到你的项目中,本文将会介绍如何打包和共享这些库. 打包脚本 默认 ...

  7. vmware中nat模式中使用静态ip后无法上网的问题

    在/etc/network/interfaces中添加静态ip auto eth0iface eth0 inet staticaddress 192.168.31.133netmask 255.255 ...

  8. android 开发中 添加库文件 和so 文件的存放位置和添加依赖

    so文件一般存储在  main 当中  jniLibs 当中 然后在build.gradle中添加 sourceSets { main { jniLibs.srcDirs = ['src/main/j ...

  9. 关于在Silverlight中添加图片的问题

    在Silverlight中添加图片,目前支持的Image格式有jpg和png两种,如何在目录中添加,有些什么技巧呢? <StackPanel Background="White&quo ...

随机推荐

  1. 还在担心CC攻击? 让我们来了解它, 并尽可能将其拒之服务之外.

    还在担心CC攻击? 让我们来了解它, 并尽可能将其拒之服务之外. CC攻击是什么? 基本原理 CC原名为ChallengeCollapsar, 这种攻击通常是攻击者通过大量的代理机或者肉鸡给目标服务器 ...

  2. Mybatis配置错误:java.lang.ExceptionInInitializerError

    情况一:配置文件,无法被导出或者生效 修改前: 修改后: 究其原因,这是由于Maven的约定大于配置,导致我们写的配置文件,无法被导出或者生效的问题,解决方案: 在pom.xml文件中配置导出非res ...

  3. Kafka03--Kafka消费者使用方式

    前言 与生产者客户端一样,消费者端也由最初的scala版本过渡到现在的Java版本. 正常的消费者逻辑需要以下4个步骤: KafkaConsumer的客户端参数配置和对应实例: 订阅主题 拉取消息并消 ...

  4. 为什么要用 Spring Boot?

    Spring Boot 优点非常多,如:独立运行简化配置自动配置无代码生成和XML配置应用监控上手容易Spring Boot 集这么多优点于一身,还有理由不使用它呢?

  5. springmvc对前台参数的接收

    一.基本数据类型的接收 代码: @RequestMapping("/selectRegion") public BaseResult<?> method(String ...

  6. vue集成webpack,遭遇 SyntaxError: Unknown word

    这个错误根本和我的项目八竿子打不着,错误原因是配置了 css 的rule,将 这个rule注释掉,正常运行没有问题, 可是我却有强迫症,既然处理 node_modules 文件里才出现的错误,那么我就 ...

  7. 什么是 bean 的自动装配?

    Spring 容器能够自动装配相互合作的 bean,这意味着容器不需要和配置,能通 过 Bean 工厂自动处理 bean 之间的协作.

  8. 学习ansible(一)

    1.介绍 1 ansible基于Python开发的自动化运维工具 2 ansible基于ssh协议实现远程管理的工具,没有客户端 3 ansible软件可以实现多种批量管理操作 2.环境 主机 IP ...

  9. 转载:介绍AD另外一种奇葩的多通道复用的方法

    原文链接:http://www.eda365.com/forum.php?_dsign=74fe4957&mod=viewthread&page=1&tid=110710 在设 ...

  10. API的自动化测试

    传统的测试工具在测试一个API的时候,必须手动填写这个API所需要接收的所有信息,比如一个查询航班动态的API,他接收两个输入字段,一个叫flight, 一个叫date,那么测试这个API的用户,需要 ...