我正在使用此
在控制器中保存上传的图像saveImage(context.getRealPath("/resources/image.jpg"), image);
然后尝试使用此
在JSP中加载图像<img src="<c:url value="/resources/image.jpg"/>" />
我可以在浏览器地址栏中使用此功能访问图像
home/user/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp1/wtpwebapps/SpringMVCTest/resources/image.jpg
但图像不会加载到jsp中,只会加载损坏的链接图像。
我也在使用<mvc:resources mapping="/resources/**" location="/resources" />
来提供静态内容。
为什么这不起作用?
琐碎的回答。一切都是正确的,除了我错过了
上的“/”<mvc:resources mapping="/resources/**" location="/resources" />
应该是
<mvc:resources mapping="/resources/**" location="/resources/" />
答案 0 :(得分:0)
路径
家/用户/工作区/ .metadata / .plugins / org.eclipse.wst.server.core / TMP1 / wtpwebapps / SpringMVCTest /资源/ image.jpg的
是您服务器的文件系统路径,您的客户端将无法访问它,
而是将图像放在公共网站区域中并提供相对路径,例如
/contextofyourweb/images/1.jpeg
或创建一个ImageServlet,它从服务器文件系统中读取文件并将其放入servlet响应
相关:
答案 1 :(得分:0)
我有同样的问题。我的要求是视图的Html5和Jquery,没有JSP。我有Spring MVC应用程序,它模拟用C编写的服务器。
我的春季MVC配置:
<mvc:resources mapping="/resources/**" location="/resources" />
由于我无法使用标签,我找到了一个有效的jQuery解决方案:
$(function(){
var ctxRoot = window.location.pathname;
var imgBtn1Url="/"+ctxRoot.split("/")[1]+"/resources/img/glyphs/glyphicons_173_play.png";
alert(imgBtn1Url)
$('#imgBtn1').attr('src', imgBtn1Url);
});
HTML:<img id="imgBtn1" alt="" data-src="holder.js/300x200" class="thumbnail" />
在我的情况下ctxRoot = / viper / config,因为Spring Dispatcher Servlet的url模式。在你的情况下,location.pathname可能就足够了。
<servlet-mapping>
<servlet-name>conf</servlet-name>
<url-pattern>/config/*</url-pattern>
</servlet-mapping>
我希望使用Spring MVC的其他人会觉得有帮助。
答案 2 :(得分:0)
您应该将图像保存在应该不在项目文件中的文件夹中,因为一旦重新部署它,您肯定会丢失解压缩目录中的文件。
更好的是,将图像保存在某个保存位置,我确信,您正在保存数据库中的路径,这些图像需要独立于您的部署和webcontent文件夹中的目录。