【问题标题】:Getting location to resources folder in intellij在intellij中获取资源文件夹的位置
【发布时间】:2016-04-28 21:52:28
【问题描述】:

我对 Intellij 没什么问题。我尝试使用 Intellij 中的 maven 在 Java 和 Spring 中创建一个简单的应用程序。我的项目结构如下:

MyProject:
|--src
|  |--main
|  |   |--java
|  |   |--resources
|  |   |--web
|  |   |   |--WEB-INF
|  |   |   |   |--dispatcher-servlet.xml
|  |   |   |   |--web.xml
|  |--test

问题是当我尝试添加到dispatcher-servlet.xml 行时:

 <mvc:resources mapping="/resources/**" location="/resources/" />

我的intellij 看不到文件夹资源,只有WEB-INF。我创建了这样的项目:

  1. 使用 maven 创建项目
  2. 开放模块结构
  3. 添加新模块 - 网络应用程序

我如何获得dispathcer-servlet.xmlresoucres 文件夹的访问权限?还是我使用了错误的项目结构?

【问题讨论】:

  • location="/resources/ 不代表src/main/resources。实际上是src/main/resources/resources
  • 没有任何效果,即使我将整个路径从光盘粘贴到文件夹资源,如 (location="E:/Java/MyProject/src/main/resources")
  • My intellij dont see the folder resources 是什么意思?
  • 当我输入location="" Intellij 在正确的位置给出显示建议,而我得到的只是文件夹 WEB-INF

标签: java spring maven spring-mvc


【解决方案1】:
<mvc:resources mapping="/resources/**" location="/resources/" />

那条线的意思是:

对于路径以/resources 开头的每个 HTTP 请求,请在已部署的 webapp 中的位置 /resources/ 下查找文件。

您的 web 应用中没有任何名为 resources 的文件夹。您所拥有的只是 Maven 项目结构 中的 src/main/resources。根据 Maven 的约定,那里的文件最终位于类路径中(即在 webapp 的 WEB-INF/classes 下)。

所以,在 webapp 下创建一个资源文件夹,或者将你的文件放在 src/main/resources/foo 下并配置 Spring 以在 foo 下的类路径中查找资源:

<mvc:resources mapping="/resources/**" location="classpath:/foo/" />

【讨论】:

  • 可以多说一些关于类路径的信息,它的用途,它是如何使用的,尤其是为什么这不起作用location = "classpath:/resources/"
  • 如果 intellij 没有提出建议,并不意味着您的配置不起作用。在src/main/resources/resourcesWEB-INF/resources 目录中放一些东西,比如all.css,然后你可以通过localhost:8080/resources/all.css 访问那个文件
  • Java 能够使用 ClassLoader 加载类。 ClassLoader 在特定位置查找类。每个 webapp 都有自己的类加载器,它从 WEB-INF/classes 和 WEB-INF/lib 下的所有 jars 中加载类。这是由 servlet 规范指定的。 Maven 构建 webapp 时,会将 src/main/java 下的所有 Java 文件编译成 .class 文件,最终在 WEB-INF/classes 中,并将 src/main/resources 下的所有文件复制到 WEB-INF/classes 为出色地。所以这些文件也可以被类加载器加载。
  • classpath:/resources/ 不起作用,因为您在src/main/resources 下没有任何resources 文件夹。
猜你喜欢
  • 2015-03-03
  • 1970-01-01
  • 2016-08-06
  • 1970-01-01
  • 1970-01-01
  • 2016-02-11
  • 1970-01-01
  • 2012-09-01
  • 2015-10-20
相关资源
最近更新 更多