【java】新创建的静态文件(css、html、js)访问不到,其它文件却可以

今天在项目中因为需要引入一个开源框架,所以就从网上下载了该开源框架包并直接从桌面复制到了IDEA项目中。一番修改后重启项目,发现该框架并未工作,然后在前端debug发现刚复制的这个框架的所有html、js、css都访问不到,报了404错误。然后又重启了项目,发现还是一样访问不到。最后想着是直接复制粘贴的文件没来得及发布到maven的target文件夹中,执行了一下项目的maven clean操作,删除target文件夹,然后再重启项目,重新编译生成target文件夹,然后就可以访问到框架文件了。

target文件夹

这里首先说下target文件夹的作用:是用来存放项目编译后的文件和目录。包括jar包、war包、编译的class文件、静态文件(html、jsp、JavaScript、css以及配置文件等)。每当你启动项目时,就会把你项目的src(源代码文件)发布到target文件夹中。这里的发布简单点说就是:

  • 把所有的src中的java文件编译成class文件放到target的classes文件夹中,同时把resources文件夹下的配置文件copy过去
  • 把pom.xml中的依赖jar包放到target的lib文件夹中(WEB-INF下)
  • 把src中所有的静态资源(webapp下的所有文件)直接复制一份拷贝到target中

编译过来的class文件会被jvm加载到内存中,而你所访问到的静态资源都是target文件夹下的,并不是你src文件夹中的本人测试修改target文件夹下的一个静态文件(没修改src下的文件),页面刷新之后显示了修改的效果,所以证实项目确实访问的是target文件夹。估计当时idea发布的时候并没有把新添加的静态文件发布到target中,具体原因不得而知,如果以后有时间再去深究。

maven操作

既然提到了maven的操作,就顺便写在这里吧,为那些跟我一样的新手节约点时间。

  • mvn compile:编译,将Java 源程序编译成 class 字节码文件,还顺带把resources文件夹下的配置文件                        copy到了classes文件夹下。
  • mvn test: 测试,执行你项目的test文件夹下的测试类,并生成测试报告。
  • mvn clean:将以前编译得到的旧的class 字节码文件删除。Idea下是将整个target文件夹删除。
  • mvn pakage: 打包,动态 web工程打 war包,Java工程打 jar 包。
  • mvn install: 将项目生成 jar 包放在仓库中,以便别的模块调用。以后如果你其它项目要用到这个项目中的java文件,可以这                                     样操作。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值