试图获取mvc资源来提供我的静态资源

Bla*_*man 2 java spring spring-mvc

我正在使用jetty和tomcat在本地开发.

我的图片,CSS,javascript文件位于:

/src/main/webapp/assets
Run Code Online (Sandbox Code Playgroud)

文件夹资产的位置:

/src/main/webapp//assets/images
/src/main/webapp//assets/css
/src/main/webapp//assets/images/
Run Code Online (Sandbox Code Playgroud)

我的spring配置文件有:

 <mvc:resources mapping="/assets/**" location="/" />
Run Code Online (Sandbox Code Playgroud)

我对映射和位置的含义感到困惑?

我认为映射意味着只有具有如下模式的url,spring才会尝试提供静态文件:

www.example.com/assets/
Run Code Online (Sandbox Code Playgroud)

位置有什么作用?

我的html目前有:

src="/assets/images/logo.gif"
Run Code Online (Sandbox Code Playgroud)

我尝试过使用位置值,但由于某些原因我无法渲染图像.

有人可以为我清除这个吗?

nic*_*dos 5

如果你的项目结构有/src/main/webapp/assets/images,那么你想使用:

<mvc:resources mapping="/assets/**" location="/assets/" />
Run Code Online (Sandbox Code Playgroud)

然后在你的JSP参考文件中

src="${pageContext.request.contextPath}/assets/images/logo.gif"
Run Code Online (Sandbox Code Playgroud)

更常见的是有一个项目结构/src/main/webapp/images|css|js,然后使用:

<mvc:resources mapping="/assets/**" location="/" />
Run Code Online (Sandbox Code Playgroud)

但仍然保持URL为 ${pageContext.request.contextPath}/assets/images/logo.gif