顾名思义,将项目部署到服务器上,从某种程度上就是将资源放在服务器指定的文件下,放对了位置就等于部署成功了
1.搭建一个测试环境,公司的DB会干好这个工作
2.一级目录为项目名
3.在一级目录下创建一个WEB-INF目录
4.前端资源与WEB-INF目录同级,这些资源应该根据资源类型创建相应的目录(css,js,image等等)
5.后端资源应该部署在WEB-INF下
6.WEB-INF下应该创建至少两个目录(lib和class),lib用于存放第三方的jar包,class用于存放项目的资源的字节码文件,如果该项目有jsp页面,则还应该有一个目录用于存放jsp页面,如果项目是前后端分离开发的,就不会有jsp页面了,资源就应该和WEB-INF同级,最重要的是在WEB-INF下还有一个重要的文件不要忽略,即web描述文件web.xml
7.项目的其它配置文件应该放置在class目录下
8.至此一个项目就算是部署成功了
项目部署后可能会遇到的问题(此处只写本人遇到过的,可能还会有很多问题,遇到了再进行补充)
1.找不到资源
原因分析:
web.xml访问路径方式采用的是通配符匹配/*,即所有请求都会被DispartcherServlet进行拦截,前端资源由于没有被放行的缘故通通被拦住,导致404错误
解决方式:
在Spring MVC配置文件中进行如下配置问题完美解决
<mvc:default-servlet-handler/>
网上还提供了如下解决方案
1)在spring-mvc配置文件中进行如下配置
<mvc:resources mapping="/images/**" location="/images/" />
2)在web.xml配置文件进行如下配置(该配置必须放在DispartCherServlet前面)
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.gif</url-pattern>
<url-pattern>*.png</url-pattern>
<url-pattern>*.jpg</url-pattern>
<url-pattern>*.js</url-pattern>
<url-pattern>*.css</url-pattern>
<url-pattern>*.xml</url-pattern>
<url-pattern>*.html</url-pattern>
</servlet-mapping>
上述两种方式并没有亲测,不知道是否有效
2.在项目中引进自定义拦截器以后发现项目又报404错误
原因分析:拦截器再一次将静态资源拦住
解决方式:让拦截器对静态资源放行
<mvc:interceptors>
<!-- 实现登入验证 -->
<mvc:interceptor>
<!-- 指定拦截路径 -->
<mvc:mapping path="/**"/>
<!-- 指定不需要拦截的路径前往登入页面的控制器还没写所以先注掉 -->
<mvc:exclude-mapping path="/user/tologin"/>
<mvc:exclude-mapping path="/user/login"/>
<mvc:exclude-mapping path="/weixin/authorize/toAuthorization"/>
<mvc:exclude-mapping path="/*.html"/>
<mvc:exclude-mapping path="/*.ico"/>
<mvc:exclude-mapping path="/js/**"/>
<mvc:exclude-mapping path="/images/**"/>
<mvc:exclude-mapping path="/css/**"/>
<!-- 注入拦截的类 -->
<bean class="com.erpshopapp.common.interceptors.LoginInterceptor"/>
</mvc:interceptor>
</mvc:interceptors>